从R Dataframe中的累积平均值中查找单个值

时间:2018-01-02 05:37:45

标签: r recursion

我很难找到如何从R数据帧中的运行平均值中找到单个值。

我有一个R数据帧:

x ID  Mean
1   1   1
1   2   5
2   1   3
2   2   6

其中均值是数据帧中特定ID的x测量值的平均值。

为了找到每个x值而不是平均值的各个值,我认为我需要在数据帧上应用递归函数并按ID分组。当任何apply函数无法访问数据框中的前一个条目时,如何在数据框中按其中一个值进行分组时,我该如何做?

完成并附加到数据框后,我希望它看起来像这样:

x ID  Mean  IndivValues
1   1   1     1
1   2   5     5
2   1   3     5
2   2   6     7

1 个答案:

答案 0 :(得分:1)

从总计中计算这一点要容易得多 - >个人观察,如下:

示例data.frame:

df <- read.table(text='
 x ID  Mean
 1   1   1
 1   2   5
 2   1   3
 2   2   6
 ', header=T)

<强>解决方案:

library(dplyr); library(magrittr)
df %>%
  group_by(id) %>%
  mutate( 
    total = mean * x,
    ind_value = total - lag(total, default=0) )



## A tibble: 4 x 5
## Groups:   ID [2]
#      x    ID  Mean     total ind_value
#  <int> <int> <int>     <int>     <int>
#1     1     1     1        1         1
#2     1     2     5        5         5
#3     2     1     3        6         5
#4     2     2     6       12         7