我有一个类似如下的数据框:
Comp1 Comp2 Comp3 Comp4
0.5 0.4 na 0.6
0.6 na na 0.7
na 0.4 na 1.1
每一行代表一个不同的人。对于每个人,我想计算他们在这些列的特定行中有多少个非空值,并将其保存为新变量
thanks !
如果您正在谈论缺失值R
,用大写字母表示NA
代替na
, 否则,R
会将其视为一个字符串,该字符串不为空。
另外,我人为地添加了一些Name
在你的df
表现得就像每一行代表一个Name
,以及人工的Comp5
其中包括一些NA
s 但不会包含在计算中。
rowSums()
顾名思义,计算行的总和。
is.na(df[, 2:4])
使得它只计算NA
in df
从第 2 列到第 4 列。
df <-read.table(header = T,
text =
"Name Comp1 Comp2 Comp3 Comp4 Comp5
A 0.5 0.4 NA 0.6 NA
B 0.6 NA NA 0.7 1
C NA 0.4 NA 1.1 NA")
df$Count_NA <- rowSums(is.na(df[, 2:4]))
Output
Name Comp1 Comp2 Comp3 Comp4 Comp5 Count_NA
1 A 0.5 0.4 NA 0.6 NA 1
2 B 0.6 NA NA 0.7 1 2
3 C NA 0.4 NA 1.1 NA 2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)