【发布时间】:2014-03-18 21:56:10
【问题描述】:
我有大data-frame 由两列组成。我想计算第一列的每个子集的第二列值的平均值。第一列的子集基于指定的粒度。例如,对于以下data-frame、df,我想计算df$A 的每个子集的df$B 值的平均值,每个子集的增量(粒度)为1。结果应该在两个新列中。
A B expected results newA newB
0.22096 1 0 1.142857
0.33489 1 1 2
0.33655 1 2 4
0.43953 1
0.64933 2
0.86668 1
0.96932 1
1.09342 2
1.58314 2
1.88481 2
2.07654 4
2.34652 3
2.79777 5
这是一个简单的例子,我不知道如何循环整个data-frame 并执行计算,即df$B 的平均值。
在下面尝试了子集,但不知道如何附加结果并创建最终结果:
试过类似的东西:
increment<-1
mx<-max(df$A)
i<-0
newDF<-data.frame()
while(i < mx){
tmp<-subset(df, (A >i & A< (i+increment)))
i<-i+granualrity
}
不确定逻辑。但我确信有一种简短的方法可以进行所需的计算。有什么想法吗?
【问题讨论】: