计算R

时间:2018-02-20 06:54:32

标签: r dataframe

我需要根据某些条件对数据框进行细分,例如mean()max()

这是我的数据框df,其中包含一个变量A

    A
    0
    0
    3
    2
    4
    3  
   ...

我需要为此列的每一行再创建两列meanmax 预期产出

    A      mean                                      max
    0       0                                         0
    0       0(mean(A[1], A[2]))                       0(max(A[1], A[2]))
    3       1(mean(A[1],A[2],A[3]))                   3(max(A[1],A[2],A[3]))
    2       1.25(mean(A[1],A[2],A[3],A[4]))           3(max(A[1],A[2],A[3],A[4]))
    4       1.8(mean(A[1],A[2],A[3],A[4],A[5]))       4(max(A[1],A[2],A[3],A[4],A[5]))
    3       2(mean(A[1],A[2],A[3],A[4],A[5],A[6]))    4(max(A[1],A[2],A[3],A[4],A[5],A[6]))
   ...       ...                                      ...

在R中执行此操作的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

dplyr包内置了许多累积功能。这是一个例子。

> library(dplyr)
> btest <- data.frame(a = c(0,0,3,4,2,3), b = rnorm(6))
> btest %>% mutate(mean = cummean(a), max = cummax(a))
  a          b mean max
1 0 -1.6028412 0.00   0
2 0  0.1953723 0.00   0
3 3  0.2022246 1.00   3
4 4 -0.2744182 1.75   4
5 2  0.3343044 1.80   4
6 3  0.2081762 2.00   4