我创建了一个数据帧df .
df <- data.frame (id = 1:10,
var1 = 10:19,
var2 = sample(c(1:2,NA), 10, replace=T),
var3 = sample(c(3:5, NA), 10, replace=T))
我需要的是一个新的列var4,它计算每行的非NA值的数量(不包括id列) . 因此,例如,如果行类似于var1 = 19,var2 = 1,var3 = NA,则var4 = 2 . 我在dplyr找不到一个好方法 . 就像是:
df %in% mutate(var4= ... )
如果有人能帮助我,我感激不尽 .
1 回答
使用
select
is.na
rowSums
,select(., -id)
返回原始数据框(.
)并排除id
,然后使用rowSums(!is.na(...))
计算非NA值的数量: