我有一个大数据集(大约10000行),想要创建一个函数来计算每个组的完整案例数量(不包括NAs)。我尝试了各种函数(aggregate,table,sum(complete.cases),group_by等),但是我似乎错过了一个 - 可能很小的 - 技巧。感谢任何帮助!
这里是一个小样本数据集,用于解释我需要的结果。
不幸的是,这是错误的。相反,结果应该看起来像这样。
这里是一个小样本数据集,用于解释我需要的结果。
x <- data.frame(group = c(1:4),
age = c(4:1, c(11, NA,13, NA)),
speed = c(12, NA,15,NA))
print(x)
# group age speed
#1 1 4 12
#2 2 3 NA
#3 3 2 15
#4 4 1 NA
#5 1 11 12
#6 2 NA NA
#7 3 13 15
#8 4 NA NA
我写的一个函数如下:
CountPerGroup <- function(group) {
data.set <- subset(x,group %in% group)
vect <- vector()
for (i in 1:length(group)) {
vect[i] <- sum(complete.cases(data.set))
}
output <- data.frame(cbind(group,count=vect))
return(output)
}
执行
的结果是:
CountPerGroup(2:1)
is
group count
1 2 4
2 1 4
不幸的是,这是错误的。相反,结果应该看起来像这样。
group count
1 2 1
2 1 4
我错过了什么?我该如何告诉R按组计算complete.cases的数量? 非常感谢您对此的任何帮助!