我有一张excel表,看起来像:
BAR1 BAR1 BAR2 5 6 40
BLANK BLANK BLANK 4 10 9
Bar1 SEV BAR1 5 50 40
BLANK BLANK BLANK 3 61 9
BAR2X BAR1 BAR2 30 51 23
BLANK BLANK BLANK 3 61 31
我想创建一个表格,其中包含最左侧列中的所有符号,并显示该符号出现的相应次数。即
Bar1 10(5+5) 57(51+6) 40(40)
Blank 10 132 49
.....
我一直在尽力研究这个,但我想你们会很快找到一个非常优雅的解决方案让我开始。谢谢。
答案 0 :(得分:0)
由于您实际上是在尝试汇总按相应列分组的值,因此您可以将数据框集中到三个数据框中,执行摘要然后将它们合并。所以这样的事情应该有效:
cols = list(c(1,4), c(2,5), c(3,6))
aggList <- lapply(cols, function(i)
aggregate(x = df[i][[2]], by = list(tolower(df[i][[1]])), sum))
Reduce(function(x, y) merge(x, y, by = "Group.1"), aggList)
Group.1 x.x x.y x
1 bar1 10 57 40
2 blank 10 132 49