有人可以解释为什么我使用聚合函数得到不同的答案来按组计算缺失值?此外,是否有更好的方法使用本机R函数按组计算缺失值?
DF <- data.frame(YEAR=c(2000,2000,2000,2001,2001,2001,2001,2002,2002,2002), X=c(1,NA,3,NA,NA,NA,7,8,9,10))
DF
aggregate(X ~ YEAR, data=DF, function(x) { sum(is.na(x)) })
with(DF, aggregate(X, list(YEAR), function(x) { sum(is.na(x)) }))
aggregate(X ~ YEAR, data=DF, function(x) { sum(! is.na(x)) })
with(DF, aggregate(X, list(YEAR), function(x) { sum(! is.na(x)) }))
Run Code Online (Sandbox Code Playgroud) 我的数据看起来像这样:
df1 <- data.frame(
Z = sample(LETTERS[1:5], size = 10000, replace = T),
X1 = sample(c(1:10,NA), 10000, replace = T),
X2 = sample(c(1:25,NA), 10000, replace = T),
X3 = sample(c(1:5,NA), 10000, replace = T)
)
Run Code Online (Sandbox Code Playgroud)
我可以用以下方法计算缺失的变量:
data.frame("Total Missing" = colSums(is.na(df1)))
Run Code Online (Sandbox Code Playgroud)
但是,我想通过这个Z.也就是说,Z的每个值缺失X1-3的数量.
我试过这个
df1 %>% group_by(Z) %>% summarise('Total Missing' = colSums(is.na(df1)))
Run Code Online (Sandbox Code Playgroud)
但它没有像我预期的那样工作.