我正在写我的第一个
R中的程序,作为一个新手,我遇到了一些麻烦,希望你能帮助我。

我有一个这样的数据框:

> v1<-c(1,1,2,3,3,3,4)
> v2<-c(13,5,15,1,2,7,4)
> v3<-c(0,3,6,13,8,23,5)
> v4<-c(26,25,11,2,8,1,0)
> datos<-data.frame(v1,v2,v3,v4)
> names(datos)<-c("Position","a1","a2","a3")

> datos
  posicion a1 a2 a3
1        1 13  0 26
2        1  5  3 25
3        2 15  6 11
4        3  1 13  2
5        3  2  8  8
6        3  7 23  1
7        4  4  5  0

我需要的是将 a1a2a3 中的数据相加(在我的真实情况下,从 a1a51 )按 Position 分组。我正在尝试使用函数 aggregate() 但它只适用于手段,而不适用于总和,我不知道为什么。

提前致谢

最佳答案

这对于 plyr 库来说相当简单。

library("plyr")
ddply(datos, .(Position), colwise(sum))

如果您有其他不应平均的非数字列,则可以使用
ddply(datos, .(Position), numcolwise(sum))

关于r - 聚合 R 总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7615922/

10-10 03:49