【发布时间】:2015-10-08 03:38:11
【问题描述】:
我在下面有一个数据框 (df),我想添加一个额外的列 result,如果 z == "gone" 和其中 x 是组 @ 的最大值,则使用 dplyr 将取值 1 987654324@.
y x z
1 a 3 gone
2 a 5 gone
3 a 8 gone
4 a 9 gone
5 a 10 gone
6 b 1
7 b 2
8 b 4
9 b 6
10 b 7
如果我只是为每个组选择最大值,那将是:
df %>%
group_by(y) %>%
slice(which.max(x))
将返回:
y x z
1 a 10 gone
2 b 7
这不是我想要的。我需要利用y 中每个组的x 的最大值,同时检查是否z == "gone",如果TRUE 为1,否则为0。这看起来像:
y x z result
1 a 3 gone 0
2 a 5 gone 0
3 a 8 gone 0
4 a 9 gone 0
5 a 10 gone 1
6 b 1 0
7 b 2 0
8 b 4 0
9 b 6 0
10 b 7 0
我假设我会在mutate() 中使用条件语句,但我似乎找不到示例。请指教。
【问题讨论】: