2017-03-13 114 views
0

我想只保留表中至少具有特定列中的NA值的行。我需要解決方案,這將與各種列的工作。在data.table中保留帶有NA值的行r

我有這樣的代碼:

library(data.table) 
cols<-c("colname1","colname2") 
DT<-DT[rowSums(is.na(DT[,cols,with=F])) == 2] 

而且我得到這樣的錯誤與此代碼:

錯誤DT [C( 「colname1」, 「colname2」),與= F]:
不正確的維數

任何人都可以幫我解決這個問題嗎?


我找到正確的解決方案,但我仍然不知道爲什麼第一個不起作用。

cols<-c("colname1","colname2")  
DT<-DT[eval(rowSums(is.na(DT[,cols,with=F])) == length(cols))] 

有人能告訴我爲什麼我的冷杉代碼不起作用嗎?

+0

你想刪除行,其中兩列顯示或當他們中的任何NA單獨顯示NA? – tbradley

+0

我想只保留這兩列有NA的行。 –

+0

改變了我的答案來完成這 – tbradley

回答

0

,你就應該能夠做到這一點:

保持僅排在那裏都等於NA

DT <- DT[(is.na("colname1") == T & is.na("colname2") == T), ] 
+0

我已更新問題becouse這不完全是我正在尋找。 –