我正在使用R.我有一个数据集。
group attribute1 attribute2 attribute3
A 1 2 3
A 2 3 4
B 2 4 2
B 2 2 1
如何编写输出函数:
group attribute1 attribute2 attribute3
A 1.5 2.5 3.5
B 2 3 1.5
让我很困惑。我不知道如何使用ddply
函数来做到这一点?谁能给我一些提示?
答案 0 :(得分:4)
> mydf <- data.frame(group=c('a','a','b','b'), a1=c(1,1,2,2), a2=c(2,3,4,2), a3=c(3,4,2,1))
> aggregate(. ~ group, mydf, mean)
group a1 a2 a3
1 a 1 2.5 3.5
2 b 2 3.0 1.5
或使用plyr
:
ddply(mydf, "group", colwise(mean))
答案 1 :(得分:2)
使用data.table
:
library(data.table)
mydf <- data.frame(group=c('a','a','b','b'), a1=c(1,1,2,2), a2=c(2,3,4,2), a3=c(3,4,2,1))
my.dt <- data.table(mydf)
my.dt[, lapply(.SD, mean), by = group]
group a1 a2 a3
1: a 1 2.5 3.5
2: b 2 3.0 1.5