Count NAs per row in dataframe
74,791
Solution 1
You could add a new column to your data frame containing the number of NA
values per batch_id
:
df$na_count <- apply(df, 1, function(x) sum(is.na(x)))
Solution 2
You can count the NA
s in each row with this command:
rowSums(is.na(dat))
where dat
is the name of your data frame.
Author by
Shark7
Updated on March 05, 2020Comments
-
Shark7 about 4 years
I've got dataframe that has batch ID and the results of six tests performed on each batch. The data looks like this:
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
(there are a few hundred rows in this dataframe, only one row per batch_id)
I'm looking for a way to count how many NAs there are for each batch_id (for each row). I feel like this should be do-able with a few lines of R code at the most, but I'm having trouble actually coding it. Any ideas?
-
Shark7 almost 8 yearsThanks. That works. I ended up using this, which is a bit simpler:<br/>
df$na_count <- apply(is.na(df), 1, sum)
-
ADF over 5 yearsThis solution is excellent and vectorized. Thank you.
-
David over 2 yearsthis solution should be selected