我有一个如下所示的数据框。对于组中的每一行,我想将 ID 与之前所有行的 ID 进行比较。在新列中,如果行的 ID 与之前的任何行的 ID 相同,则值为“TRUE”,如果与之前的任何行不同,则值为“FALSE”。
group id order
1 g1 27391 1
2 g1 29381 2
3 g2 27391 3
4 g2 48401 1
5 g2 27391 2
6 g2 27391 3
7 g2 48401 4
8 g3 27391 1
8 g3 48401 2
所以输出看起来像:
group id order same?
1 g1 27391 1 NA
2 g1 29381 2 FALSE
3 g2 27391 3 TRUE
4 g2 48401 1 NA
5 g2 27391 2 FALSE
6 g2 27391 3 TRUE
7 g2 48401 4 TRUE
8 g3 27391 1 NA
8 g3 48401 2 FALSE
我们可以按'group'分组,duplicated
在'id'上使用,replace
第一个元素NA
和ungroup
library(dplyr)
dat %>%
group_by(group) %>%
mutate(same = replace(duplicated(id), 1, NA)) %>%
ungroup
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句