R:计算数据帧中每行的NAs

Sha*_*rk7 20 r dataframe

我有数据框具有批次ID,并且每个批次都执行了六次测试的结果.数据如下所示:

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
Run Code Online (Sandbox Code Playgroud)

(此数据框中有几百行,每个batch_id只有一行)

我正在寻找一种方法来计算每个batch_id(每行)有多少个NA.我觉得这应该可以使用最多几行R代码,但我实际编码时遇到了麻烦.有任何想法吗?

Sve*_*ein 56

您可以NA使用以下命令计算每行中的s:

rowSums(is.na(dat))
Run Code Online (Sandbox Code Playgroud)

dat数据框的名称在哪里.

  • 这个解决方案非常好并且是矢量化的。谢谢你。 (4认同)

Tim*_*sen 28

您可以在数据框中添加一个新列,其中包含NA每个值的数量batch_id:

df$na_count <- apply(df, 1, function(x) sum(is.na(x)))
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.这样可行.我最终使用了这个,这有点简单:<br/>``df $ na_count < - apply(is.na(df),1,sum)` (2认同)