【发布时间】:2016-06-18 13:40:45
【问题描述】:
我有一个如下所示的数据框
ID VALUE GROUP MODEL
1 id_1 17.6100597 Group A Model B
2 id_10 6814.7109375 Group A Model B
3 id_100 26.5990372 Group C Model F
4 id_1000 0.0000000 Group B Model D
5 id_101 486.4001160 Group C Model C
6 id_102 108.9007416 Group C Model C
7 id_103 1.0070915 Group B Model F
8 id_104 0.5426522 Group B Model F
9 id_105 1.1137601 Group C Model C
10 id_106 0.2867465 Group C Model C
我想创建一个汇总表,其中包含基于组和模型的聚合值。因此,对于每个组,每个模型的聚合以及该组的总数的另一行。喜欢
# Groups Models Aggregates
# Group A Model A aggAA
# Group A Model B aggAB
# Group A Total A aggA
# Group B Model A aggBA
# Group B Model B aggBB
# Group B Model C aggBC
# Group B Total B aggB
我为此创建了这个脚本
dat <- read.csv2("data.csv")
dat$GROUP <- factor(dat$GROUP)
groupnames <- levels(dat$GROUP)
resume <- NULL
for (group in groupnames) {
dat1 <- dat1[dat1$GROUP == group,]
aggdat1 <- aggregate(dat1[,"VALUE"],list(dat1[,"MODEL"]),FUN=sum)
colnames(aggdat1) <- c("MODEL", "VALUE")
resumegroup <- rbind(aggdat1,c(" ",colSums(aggdat1[-1])))
resumegroup <- cbind("GROUP"=group,resumegroup)
resume <- rbind(resume,resumegroup)
}
resume
不幸的是,这不起作用,我在子集命令之后收到了一条奇怪的错误消息,已经在第一次迭代(A 组)时很明显必须包含一些行。
(或 0 长度行名称)
aggregate.data.frame(as.data.frame(x), ...) 中的错误: 没有要聚合的行
【问题讨论】: