如何逐个获取平均数据框架?

时间:2015-08-01 19:58:37

标签: r

我有一个包含一列的数据框。我想比前两个数字取平均前两个数字,依此类推。

Example_data_frame
    1
    2
    3
    4
    5
    6
    7
    8

Resulting_data_frame
   1.5
   3.5
   5.5
   7.5

我想取平均值。因此结果类似于您在Resulting_data_frame

中看到的结果

1 个答案:

答案 0 :(得分:4)

这是一种可能的矢量化方法

colMeans(matrix(df1$v1, nrow = 2))
## [1] 1.5 3.5 5.5 7.5

针对tapply的一些基准(现已被删除......)

set.seed(123)
df1 <- data.frame(v1 = sample(1e6))

system.time(with(df1, tapply(v1, as.numeric(gl(nrow(df1), 2, nrow(df1))), FUN = mean)))
# user  system elapsed 
# 11.28    0.03   11.73

system.time(colMeans(matrix(df1$v1, nrow = 2)))
# user  system elapsed 
# 0.01    0.00    0.01