小编Den*_*naG的帖子

使用R中的data.table进行顺序过滤

我的数据如下:

PERMNO date DLSTCD
    10 1983     NA 
    10 1985    250 
    10 1986     NA
    10 1986     NA 
    10 1987    240 
    10 1987     NA  
    11 1984     NA  
    11 1984     NA  
    11 1985     NA  
    11 1987     NA 
    12 1984    240 
Run Code Online (Sandbox Code Playgroud)

我需要根据以下标准过滤行:

  1. 对于每个PERMNO,按数据排序date
  2. 在公司被除名后解析排序数据并删除行(即DLSTCD!= NA)
  3. 如果第一行对应于公司已退市,则不包括该公司的任何行

根据这些标准,以下是我的预期输出:

PERMNO date DLSTCD
    10 1983     NA 
    10 1985    250 
    11 1984     NA  
    11 1984     NA  
    11 1985     NA  
    11 1987     NA 
Run Code Online (Sandbox Code Playgroud)

data.table在R中使用这个数据.上面的示例是我的实际数据的过度简化版本,其中包含对应于30k PERMNO的大约3M行.

我实现了三种不同的方法,可以在这里看到:
r-fiddle: http://www.r-fiddle.org/#/fiddle?id = 4GapqSbX&version = …

r data.table

3
推荐指数
2
解决办法
184
查看次数

标签 统计

data.table ×1

r ×1