繁体   English   中英

用R中的修剪均值聚合

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM