我正在尝试获取每个分类变量(在数据框中)的数值变量的总和。我试过使用tapply
,但它并不需要一个整体data.frame
。
这是一个工作示例,其中包含一些如下所示的数据:
> set.seed(667)
> df <- data.frame(a = sample(c("Group A","Group B","Group C",NA), 10, rep = TRUE),
b = sample(c(1, 2, 3, 4, 5, 6), 10, rep=TRUE),
c = sample(c(11, 12, 13, 14, 15, 16), 10, rep=TRUE))
> df
a b c
1 Group A 4 12
2 Group B 6 12
3 <NA> 4 14
4 Group C 1 16
5 <NA> 2 14
6 <NA> 3 13
7 Group C 4 13
8 <NA> 6 15
9 Group B 3 16
10 Group B 5 16
使用tapply
,我一次可以得到一个向量:
> tapply(df$b,df$a,sum)
Group A Group B Group C
4 14 5
但我更感兴趣的是得到这样的东西:
a b c
1 Group A 4 12
2 Group B 14 44
3 Group C 5 29
任何帮助,将不胜感激。谢谢。