基于两个逻辑条件的唯一行

Unique rows based on two logical conditions

我希望我的数据框 return 基于两个逻辑条件(或非 AND)的唯一行。

但是当我 运行 这个时,df %>% group_by(sex) %>% distinct(state, education) %>% summarise(n=n()) 我根据由 AND 而不是 OR 连接的两个条件得到了去重行。

有没有办法得到这样的东西 df %>% group_by(sex) %>% distinct(state | education) %>% summarise(n=n()) 以便删除重复的行将由 OR 连接而不是 AND?

谢谢。

您可以使用 tidyr::pivot_longer,然后再使用 distinct

df %>%
  pivot_longer(c(state, education), names_to = "type", values_to = "value")
  group_by(sex) %>%
  distinct(value) %>%
  summarise(n = n())

在这种情况下,pivot_longer 只是将州和教育放入一个名为 value 的列中。