1

我有一个很大的data.frame,如果code1and 和code2andcode3缺失,那么我将删除

DATE        BIRTHDAY     ID   code1  code2  code3   ID_SEX
19970406    19501022     1      32     4      2        F
19980508    19501022     1                             F
19980508    19501022     1       2     56     43       F
19990805    19500502     2       23    56              M
20000321    19500502     2       4                     M
20060715    19500322     3                             F

我要这个

DATE        BIRTHDAY     ID   code1  code2  code3   ID_SEX
19970406    19501022     1      32     4      2        F
19980508    19501022     1       2     56     43       F
19990805    19500502     2       23    56              M
20000321    19500502     2       4                     M

身份证可以由代表。

4

1 回答 1

2

假设您调用 data.frame mydata

mydata[ 
  apply( mydata[ c("code1", "code2", "code3") ], 1, function(x){
    ! all( is.na( x ) )
  }),
]

编辑:

考虑到贾斯汀的评论,以防万一您的代码列不是数字而是类型characterfactor缺失值实际上不是NAs 而是空字符串(""),您可以使用捕获所需的行

mydata[ 
  apply( mydata[ c("code1", "code2", "code3") ], 1, function(x){
    any( x != "" )
  }),
]
于 2013-05-13T15:38:59.250 回答