下面是我的例子,让我解释一下我正在try 做什么,尽管它并没有像我希望的那样工作.
我需要找到同一个人在同一天z列中有2+唯一值的所有实例.但是,我需要找到z列中的特定值列表.
library(tidyverse)
x <- c("Person A","Person A","Person A","Person A","Person A","Person A")
y <- c("2022-01-01","2022-01-01","2022-01-20","2022-02-01","2022-02-01","2022-02-01")
z <- c("A","D","A","A","C","B")
df <- data.frame(x,y,z)
df
df %>%
group_by(x,y) %>%
mutate(unique_z = n_distinct(z)) %>%
# ungroup() %>%
filter(unique_z > 1,
z %in% c("C","B"))
下面是我想要输出的图像,但我无法理解.
第1行和第2行应该删除,因为即使同一个人在同一日期有两个唯一的z值,它也不包括"C"或"B".
第3行被删除,因为它只是该人员和日期的一个唯一值.
第4行、第5行和第6行都应该保留,因为该person、date组合有三个唯一的z值.此外,"C"和/或"B"出现在这些行中.出于某种原因,每次都会删除第4行.我想看看这个人的其他z值,日期组合.我原以为分组和过滤可以做到这一点,但我现在的做法似乎并不如此.