我有一个包含组的数据集--"a"、"B"、"C"和"a&B"--在两个时间点--"之前"和"之后".如果A或B在任一时间点的样本量低于10人,我只想包括"A&B".否则,我想删除"A&B"组.我如何告诉R只有在满足其他标准的情况下才删除该组?
这里有两个样本数据集——其中一个应该过滤掉A组;B和一个应保留的位置:
library(dplyr)
#This should not filter out anything
should_not_drop_group <- tibble(group = rep(c("A", "B", "C", "A & B"), 2),
time = c(rep(c("Before"), 4), rep(c("After"), 4)),
sample_size = c(5, 100, 132, 105, 250, 50, 224, 300))
#This dataset should drop group A&B
should_drop_group <- tibble(group = rep(c("A", "B", "C", "A & B"), 2),
time = c(rep(c("Before"), 4), rep(c("After"), 4)),
sample_size = c(500, 100, 132, 600, 250, 50, 224, 300))
这就是为什么我试着无济于事:
library(dplyr)
should_drop_group %>%
filter_if(~any(sample_size[group %in% c("A", "B")] < 10), group != "A & B" )