【发布时间】:2014-06-15 03:17:22
【问题描述】:
我有四个向量(列)
x y z t
1 1 1 10
1 1 1 15
2 4 1 14
2 3 1 15
2 2 1 17
2 1 2 19
1 4 2 18
1 4 2 NA
2 2 2 45
3 3 2 NA
3 1 3 59
4 3 3 23
1 4 3 45
4 4 4 74
2 1 4 86
对于向量 y 的每个值(从 1 到 4),其中 x=1,z=1,如何使用 R 中的聚合函数计算向量 t 的平均值和中位数?
讨论了如何使用 3 个参数 (Multiple Aggregation in R),但有点不清楚如何使用 4 个参数。
谢谢。
【问题讨论】:
-
尝试使用聚合的最大问题是您需要不同的聚合函数(均值和中值)。
aggregate()一次只使用一个。 -
@MrFlick: 不是真的 -
aggregate(t~y, data=subset(d, x==1 & z==1), function(x) c(mean=mean(x), median=median(x))) -
@jbaums - 当然,这样做的缺点是您最终会在数据框中得到一个矩阵,其中包含列
mean和median。结构最终有点扭曲。没有什么do.call(data.frame,output)解决不了的,但还是有点麻烦。