我一直在玩aggregate
和plyr
- 并搜索了搜索结果 - 但似乎无法理解这一点。
我正在尝试获取给定变量的“{1}}为所有其他”。因此,我可以使用mean
为aggregate
中的每个变量获取var
的均值 - 是的,变量是字符,必须进行转义: - (
我想做的是:
group
的平均值,然后单独-
)与否 - / * #
的总和。 因此,在下面的示例数据中,-
的平均值为2,“所有其他”的平均值为4.
真实的数据集要长得多(1000行),更复杂,也是变量,因此单独输入“all other”是没有意义的 - 我在想-
之类的东西将是要走的路。
~.
答案 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