【发布时间】:2017-05-20 00:45:17
【问题描述】:
我有一个示例数据框:
x <- data.frame(x = c(1, 1, 2, 2, 3, 3, 4, 4, 1),
y = c("a", "a", "b", "b", "c", "c", "d", "d", "z"))
我可以很容易地按组获得row_number():
x %>%
group_by(x) %>%
mutate(id = row_number())
x y id
1 a 1
1 a 2
2 b 1
2 b 2
3 c 1
3 c 2
4 d 1
4 d 2
1 z 3
然而,我想要将x$x和x$y的相同组合编号为相同的编号,例如,
x y id
1 a 1
1 a 1
2 b 1
2 b 1
3 c 1
3 c 1
4 d 1
4 d 1
1 z 2
这样c(x$x[1], x&y[1]) == c(x$x[2], x$y[2]) == c(x$x[n], x$y[n] 在新列中的所有值都相同。
如何在dplyr 中做到这一点?
【问题讨论】:
-
您的意思是与上一行相比相同的组合吗?还是彼此相同(即
x$x == x$y)? -
x %>% group_by_all() %>% filter(n() == 2) -
@akash87 我用(希望如此!)更好的数据框和更好的问题更新了这个问题。