如您所见,它是一个面板数据,所有观察都按变量PERMCO分组,我需要删除变量vwretd中具有超过2个缺失值的所有组或者在变量PRC中具有缺失值的所有组或SHROUT的日期为1935-06-30。我不知道如何实现这一目标。
答案 0 :(得分:0)
由于数据集似乎是data.table
,我们可以使用data.table
方法执行此操作。由PERMCO',if
组成的NA元素数量(!
)的否定(sum(is.na(vwretd))
)大于2,或(|
)all
' PRC' (或' SHROUT')元素对应于' 1935-06-30' '日期'是NA
,对于特定组是TRUE,我们得到Data.table的子集。
library(data.table)
dt[, if( !(sum(is.na(vwretd)) >2| all(is.na(PRC[date == "1935-06-30"])) |
all(is.na(SHROUT[date == "1935-06-30"]))) .SD , by = PERMCO]