2016-02-26 83 views
0

我正在使用一些非常大的數據框,爲了縮短計算量,我需要排除具有NA值的行,但是在計算並創建新數據框後我需要將它們帶回(到新的數據框)。有沒有可能跟蹤我排除哪些行?如何跟蹤數據框中的哪些行在R中具有NA值

例如:

X1 X2 X3 X4 
1 3 4 5 4 
2 3 3 3 4 
3 NA NA NA NA 
4 4 3 3 2 

所以,我要的是「complete.cases」 3號,是指與NA的行數被排除之後得到的。是否可以不添加額外的列與編號?

+0

是有可能的。自己試過了什麼? –

+0

檢查'?complete.cases' –

+0

@Emkin歡迎光臨SO。請幫助我們通過在R中包含示例數據(例如,通過'dput'或'read.table'和'text ='參數生成的),預期結果(數據)以及您嘗試過的代碼來創建快速準確的答案遠。謝謝! –

回答

2

您可以使用na.omit,然後attr(na.omit(df), "na.action")給出了3

此外,

rownames(df)[!complete.cases(df)] 
# [1] "3" 
+0

作爲一個變種,我會建議'has_na < - which(!complete.cases(df))' –

1

要返回行包含至少一個NA指數,我們也可以使用:

rownames(df[rowSums(is.na(df)) > 0,]) 
# [1] "3"