作者:没有结果的爱请你收好 | 来源:互联网 | 2023-02-03 18:47
1> talat..:
这种方法怎么样:
mtcars %>%
tibble::rownames_to_column(var = "model") %>%
filter(if(applyfilter== 1) grepl(x = model, pattern = "Merc") else TRUE) %>%
group_by(am) %>%
summarise(meanMPG = mean(mpg))
grepl
仅当applyfilter为1时才会评估此方法,否则filter
只需回收a TRUE
.
或者另一种选择是使用{}
:
mtcars %>%
tibble::rownames_to_column(var = "model") %>%
{if(applyfilter == 1) filter(., grepl(x = model, pattern = "Merc")) else .} %>%
group_by(am) %>%
summarise(meanMPG = mean(mpg))
显然有另一种可能的方法,你只需要打破管道,有条件地做过滤器,然后继续管道(我知道OP没有要求这个,只想给其他读者另一个例子)
mtcars %<>%
tibble::rownames_to_column(var = "model")
if(applyfilter == 1) mtcars %<>% filter(grepl(x = model, pattern = "Merc"))
mtcars %>%
group_by(am) %>%
summarise(meanMPG = mean(mpg))