为此写标题比预期更困难。
我的数据看起来像这样:
scenario type value
1 A U 922
2 A V 291
3 A W 731
4 A X 970
5 A Y 794
6 B U 827
7 B V 10
8 B W 517
9 B X 97
10 B Y 681
11 C U 26
12 C V 410
13 C W 706
14 C X 865
15 C Y 385
16 D U 473
17 D V 561
18 D W 374
19 D X 645
20 D Y 217
21 E U 345
22 E V 58
23 E W 437
24 E X 106
25 E Y 292
我尝试做的是从每个方案中的所有值中减去type == W
的值。因此,例如,在完成此命令后,方案 A 将如下所示:
scenario type value
1 A U 191
2 A V -440
3 A W 0
4 A X 239
5 A Y 63
......等等
我想我可以使用dplyr::group_by()
和mutate()
,但我不确定在mutate命令中放入什么
答案 0 :(得分:3)
您可以使用dplyr
执行此操作。在mutate
函数中,您只需查询which
的类型为" W"然后从原始值中减去它。
library(dplyr)
df %>% group_by(scenario) %>% mutate(value = value - value[which(type == "W")])
# A tibble: 25 x 3
# Groups: scenario [5]
# scenario type value
# <fct> <fct> <int>
# 1 A U 191
# 2 A V -440
# 3 A W 0
# 4 A X 239
# 5 A Y 63
# 6 B U 310
# 7 B V -507
# 8 B W 0
# 9 B X -420
#10 B Y 164
## ... with 15 more rows