如何标记值出现在R中多个组中的行?
我想添加一列,指示值是否出现在多个组中。使用下面的示例,值 '4' 出现在组 '1' 和 '2' 中,因此我想标记该值。
x = matrix(c(1,1,1,2,2,2,3,3,4,4,5,4), nrow = 6, ncol = 2, byrow = F)
x = data.frame(x)
x
# X1 X2
# 1 1 3
# 2 1 3
# 3 1 4
# 4 2 4
# 5 2 5
# 6 2 4
这将是所需的输出:
# X1 X2 FLAG
# 1 1 3 False
# 2 1 3 False
# 3 1 4 True
# 4 2 4 True
# 5 2 5 False
# 6 2 4 True
回答
我们可以n_distinct在按'X2'分组后使用创建标志
library(dplyr)
x %>%
group_by(X2) %>%
mutate(FLAG = n_distinct(X1) > 1)