使用聚合查找“所有其他”的函数(均值)

时间:2014-03-08 14:38:33

标签: r aggregate

我一直在玩aggregateplyr - 并搜索了搜索结果 - 但似乎无法理解这一点。

我正在尝试获取给定变量的“{1}}为所有其他”。因此,我可以使用meanaggregate中的每个变量获取var的均值 - 是的,变量是字符,必须进行转义: - (

我想做的是:

  1. group的平均值,然后单独
  2. 所有其他变量的平均值(-)与否 - / * #的总和。
  3. 因此,在下面的示例数据中,-的平均值为2,“所有其他”的平均值为4.

    真实的数据集要长得多(1000行),更复杂,也是变量,因此单独输入“all other”是没有意义的 - 我在想-之类的东西将是要走的路。

    ~.

2 个答案:

答案 0 :(得分:1)

1)aggregate.formula 试试这个:

aggregate(var ~ group, transform(DF, group = ifelse(group == "-", "-", "other")), mean)

,并提供:

  group var
1     -   2
2 other   4

2)aggregate.data.frame 或者可以这样写:

group <- ifelse(DF$group == "-", "-", "other") 
aggregate(DF["var"], data.frame(group), mean)

,并提供:

  group var
1     -   2
2 other   4

答案 1 :(得分:0)

这将返回“ - ”

组的平均值
mean(df[which(df$group=="-"),]$var)
[1] 2

这将返回除“ - ”

以外的所有内容的平均值
mean(df[which(df$group!="-"),]$var)
[1] 4

这将返回除“ - ”之外的每个组的平均值

df1<-df[which(df$group!="-"),]
ddply(df1,.(group),summarise,mean=mean(var))
  group     mean
1     * 4.333333
2     / 3.500000
3     # 4.000000