删除超过2个缺失值的组

时间:2016-09-23 05:20:10

标签: r

如您所见,它是一个面板数据,所有观察都按变量PERMCO分组,我需要删除变量vwretd中具有超过2个缺失值的所有组或者在变量PRC中具有缺失值的所有组或SHROUT的日期为1935-06-30。我不知道如何实现这一目标。

1 个答案:

答案 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]