我希望根据组大小进行条件过滤.
假设我有一个双框,它看起来像:
data1 <- data.frame(
ID = c(1, 1, 1, 3, 3, 5, 6),
town = c("Town A", "Town A", "Town B", "Town A", "Town C", "Town B", "Town A"),
place = c("A", "B", "A", "B", "C", "A", "B"),
place1 = c("A", "c", "A", "B", "C", "A", "D"),
test = c("G", "B", "A", "B", "C", "A", "B"),
test1 = c("G", "B", "A", "B", "d", "A", "B")
我希望每个ID保留一个城镇,基于条件过滤place == place1,如果组大小仍然大于我想要过滤test == test1.
我试过这样的方法:
data1 %>%group_by(ID) %>%
filter(if (n() >= 2) place == place1 else test == test1) %>%
filter(n() == 1) %>%
ungroup()
但如果没有,因为第1组和第3组都不见了.