【发布时间】:2018-08-06 06:42:15
【问题描述】:
您如何执行使用来自其他行的值的rowwise 操作(以 dplyr/tidy 样式)?假设我有这个 df:
df <- data_frame(value = c(5,6,7,3,4),
group = c(1,2,2,3,3),
group.to.use = c(2,3,3,1,1))
我想创建一个新变量 new.value,它等于每行的当前值加上“group”等于该行的“group.to.use”的行的最大值。所以对于第一行
new.value = 5 + (max(value[group === 2])) = 5 + 7 = 12
想要的输出:
# A tibble: 5 x 4
value group group.to.use new.value
<dbl> <dbl> <dbl> <dbl>
1 5. 1. 2. 12.
2 6. 2. 3. 10.
3 7. 2. 3. 11.
4 3. 3. 1. 8.
5 4. 3. 1. 9.
伪代码:
df %<>%
mutate(new.value = value + max(value[group.to.use == <group.for.this.row>]))
【问题讨论】: