2016-06-14 11 views
8

バッチIDを持つデータフレームがあり、各バッチに対して6回のテストの結果が得られました。データは次のようになります。R:データフレーム内の行ごとにNAsを計算する

batch_id test1 test2 test3 test4 test5 test6 
001  0.121  NA 0.340 0.877 0.417 0.662 
002  0.229 0.108  NA 0.638  NA 0.574 

私はそれぞれのためにそこにあるどのように多くのNAカウントする方法を探しています

(このデータフレームbatch_idにつき、一つだけの行の数百行があります) batch_id(各行に対して)私はこれができるだけ多くのRコードで行えるはずですが、実際にはそれをコーディングするのに問題があります。 アイデア

+1

@BenBolker一般的に、私は最近の投稿への回答は、重複した投稿の回答よりも、より適切で現代的で効率的であることが多いようです。しかし、この特定のケースでは、この記事のOPとは異なり、リンクされた質問が具体的に「dplyr」ソリューションを求めているので、私たちは重複を扱っているとは確信していません。 – RHertel

+0

OK、この特定の質問は古くない(今年の2月)と*回答*(特に@ windrunn3r.1990の回答)は重複しています。私/私たちは再開に投票すべきですか? –

+0

@BenBolker解決策を検索したときにリンクした質問は表示されませんでした。ジャスティンの質問に対する答えは、私が探していたものです。私の質問を削除する必要がありますか? – Shark7

答えて

14

あなたはbatch_idあたりNA値の数を含むデータフレームに新しい列を追加することができます。

rowSums(is.na(dat)) 

df$na_count <- apply(df, 1, function(x) sum(is.na(x))) 
+1

ありがとうございます。それは動作します。私はこれを使いました。これはもう少し簡単です:
'df $ na_count < - apply(is.na(df)、1、sum)' – Shark7

26

をあなたは、このコマンドを使用して、各行のNA秒をカウントすることができますここで、datはデータフレームの名前です。

関連する問題