2013-05-13 49 views
1

我有一個大data.frame刪除丟失的數據,如果code1code2code3缺少那麼我會刪除如何在大數據幀

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 

該代表可以通過代表。

+3

您編寫數據的方式,您應該在數字或整數列中顯示空格。這不會發生,因爲沒有數字的「空白」。檢查'str(yourdata)'確認你的列實際上是數字,那麼你可以使用下面的'is.na'答案。 – Justin 2013-05-13 15:46:29

回答

2

假設你打電話給你data.frame mydata

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

編輯:

考慮Justins評論,只是在情況下,你的代碼列是不是數字character型或factor和失蹤的,但值實際上不是NA s,而是空字符串(""),您可以用

來捕獲所需的行
mydata[ 
    apply(mydata[ c("code1", "code2", "code3") ], 1, function(x){ 
    any(x != "") 
    }), 
] 
+0

code1〜code3是一個字符 – Hannah 2013-05-13 16:09:49

+0

,但他們錯了] – Hannah 2013-05-13 16:13:49

+0

@Hannah對不起,有一個結束括號丟失。我修好了它。所以缺少值意味着你的情況下實際值是''「'? – Beasterfield 2013-05-13 16:19:58