[英]Aggregate with trimmed means in R
我正在尝试在R中汇总这样的数据:
df = data.frame(c("a","a","a","a","a","b","b","b","b","b","c","c","c"))
colnames(df) = "f"
set.seed(10)
df$e = rnorm(13,20,5)
f e
1 a 20.09373
2 a 19.07874
3 a 13.14335
4 a 17.00416
5 a 21.47273
6 b 21.94897
7 b 13.95962
8 b 18.18162
9 b 11.86664
10 b 18.71761
11 c 25.50890
12 c 23.77891
13 c 18.80883
我想按f列进行汇总,并对每个唯一的f类型都具有e的 均值 (即产生3行数据)。
我试过了:
df2=data.frame(0)
df2=aggregate(df$e, by = "f",mean(df$e, trim=0.1))
出现以下错误:
Error in match.fun(FUN) :
'mean(df$e, trim = 0.1)' is not a function, character or symbol
在网上尝试了几次搜索,结果显示为空。 我的实际数据包含每f大约30个e值,因此我不担心trim=0.1
不会实际修剪示例中的均值(因为没有点位于上下5个百分点之内),它将与实际数据,这只是为了使聚合函数按预期工作。 谢谢!
尝试这个
df2=aggregate(e~f,data=df,mean,trim=0.1)
f e
1 a 18.15854
2 b 16.93489
3 c 22.69888
在这种情况下,用于计算的函数可以仅通过其名称给出,例如mean
,并且在逗号后设置该函数所需的其他参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.