2017-08-25 1 views
-2

で列をdropiingながら、私は、rで何らかのエラーが直面している以下のコードにコードに関するデータフレーム

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

を見つけるようにしてください午前:私は、30%以上のNA持つ列を削除するため、このコードを書いていますデータフレームに、

が、私はこの

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

再現性の例を提供し、 'prop_train'がデータフレームである場合は、適切 – snoram

+1

あなたのコードをフォーマットし忘れてはいけない、あなたは削除する必要があります'$ 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