我希望能够检测并总结缺少的观察组。我试图使用aggregate
,但无法使其工作。以下是一个示例数据集和所需结果。检测并总计NA的总和组
my.data = read.table(text = "
GROUP Z
1 NA
1 NA
1 NA
2 A
2 NA
2 NA
2 A
3 A
3 A
3 NA
", header = TRUE, stringsAsFactors = FALSE, na.strings = "NA")
my.data
desired.result <- read.table(text = "
GROUP Z my.na my.sum
1 <NA> TRUE 3
1 <NA> TRUE 3
1 <NA> TRUE 3
2 A TRUE 2
2 <NA> TRUE 2
2 <NA> TRUE 2
2 A TRUE 2
3 A TRUE 1
3 A TRUE 1
3 <NA> TRUE 1
", header = TRUE, stringsAsFactors = FALSE, na.strings = "NA")
这里是我使用的代码:
my.na <- aggregate(my.data$Z ~ my.data$GROUP, FUN = function(x) any(is.na(x)))
colnames(my.na) <- c('GROUP', 'my.na')
my.sum <- aggregate(my.data$Z ~ my.data$GROUP, FUN = function(x) sum(is.na(x)))
colnames(my.sum) <- c('GROUP', 'my.sum')
my.data2 <- merge(my.data , my.na , by=c('GROUP'), all=TRUE)
my.data2 <- merge(my.data2, my.sum, by=c('GROUP'), all=TRUE)
my.data2
的aggregate
外的上述工作的功能,如下图所示:
x <- c(NA, 1, 3, NA, NA)
sum(is.na(x))
# [1] 3
any(is.na(x))
# [1] TRUE
谢谢你的任何建议。
见的'aggreagte.formula'的 “na.action” 参数; '聚合(Z〜GROUP,my.data,函数(x)sum(is.na(x)),na.action = NULL)'。 – 2014-09-25 09:02:41
@alexis_laz谢谢。如果您将其作为答案发布,我会接受它。 – 2014-09-25 12:00:08