2015-06-30 19 views
0

我有一個數據幀,有很多的NA,但每個列都沒有不同的長度沒有NA,我想有一個相同的數據幀,但沒有NA。 所以,當我做:如何在數據幀中抑制NA值時避免長度錯誤?

for (i in 1:length(df[,1])) 
     (df[,i]<-df[,i][!is.na(df[,i])]) 

它回答:

Error in `[<-.data.frame`(`*tmp*`, , i, value = c(2696L, 2696L, 2640L, : 

做任何人有一個想法,怎麼辦呢?

回答

0

你不能在你的問題的代碼中做你想做的事情,因爲data.frame是一個具有單個鍵限制的列表結構:列表中的所有向量(或變量)必須具有相同的長度。你的代碼試圖創建不同長度的向量,這是不允許的。

你可能只需要complete.cases功能:

complete.cases(df) 

這將刪除在任何列中的任何NA值的所有行。