嗨我已计算整个数据帧中NAs(缺失值)的出现总和,并使用代码将其保存到新列。
df$NAS<-sapply(df, function(x) sum(is.na(x)))
a1<-data.frame(a)
我想知道我是否想要获得列中特定条目的出现总和,例如。列中的“未指定”然后如何填充此代码或任何其他选项来执行此操作。
答案 0 :(得分:0)
简答:
sapply(df, function(x) sum(x=='unspecified', rm.na=TRUE))
<强>解释强>
函数is.na(x)
返回带有TRUE
或FALSE
条目的向量,具体取决于值是否为NA
。通过对该向量求和,我们得到向量中TRUE
的数量。这就是你现在拥有的。
如果我们使用显示相同行为但is.na(x)
以外的值的函数替换NA
,我们就解决了您的问题。
最明显的方法是检查每个值是否等于&#39;未指定&#39;:
val_check <- function(x) x == 'unspecified'
如果我们在sapply
中使用此内容并对其进行总结,我们就完成了,对吧?现在,还有一件事会造成麻烦,那就是NA
的发生。对包含NA
的向量求和会产生NA
:
sum(c(1, 2, 3, NA))
# [1] NA
通过添加选项na.rm = TRUE
,我们克服了这个问题:
sum(c(1, 2, 3, NA), na.rm = TRUE)
# [1] 7
因此,sapply(df, function(x) sum(x=='unspecified', rm.na=TRUE))
是您正在寻找的答案