【发布时间】:2013-03-17 18:02:21
【问题描述】:
我正在尝试在 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 的修剪均值 em> type(即产生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 个百分位之外)它将使用真实数据,这只是为了让聚合函数按预期工作。谢谢!
【问题讨论】:
-
仅供参考,如果您运行
mean(df$e, trim = 0.1),您会看到结果不是函数、字符或符号。