我很难找到如何从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
答案 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