2017-08-25 62 views
-2

dropiing列我面臨的R中的一些錯誤請找到下面的代碼for循環的錯誤,而在數據幀

for (i in 1:64) { 
    if (sum(is.na(prop_train$nam[i]))/length(prop_train$nam[i]) > .3) { 
     prop_train$nam[i] <- NULL 
    } 
}  

有關代碼:我寫這個代碼下探列具有NA超過30%在數據幀,

但我面臨這個

error:Error in if (sum(is.na(prop_train$nam[i]))/length(prop_train$nam[i]) > : missing value where TRUE/FALSE needed In addition: Warning message: In is.na(prop_train$nam[i]) : 
+3

提供可重複的例子和代碼格式正確 – snoram

+1

如果'prop_train'是一個數據幀,你需要刪除'$ nam'。 – LAP

回答

1

希望這有助於!

prop_train <- data.frame(col1=c(1,2,NA,NA,NA), 
         col2=c(3,4,5,6,NA), 
         col3=c(7,8,9,10,11)) 

prop_train_new <- prop_train[ lapply(prop_train, function(x) sum(is.na(x))/length(x)) < 0.3 ] 


不要忘了讓我們知道是否能解決你的問題:)

+0

@vamshikrishna做了答案,幫助您解決您遇到的問題?如果是的話,那麼在這種情況下,您應該將其標記爲「正確答案」,因爲如果將來他們面臨類似問題,它會幫助其他人。謝謝! – Prem