我filter_list
的元素数量很多。下面的过滤有效,但如何才能使其dplyr::filter
更简洁呢?
我无法all_of
工作。
filter_list <- list(
hair_color = c("blond", "brown"),
skin_color = "light"
)
dplyr::starwars |>
dplyr::filter(
hair_color %in% filter_list[["hair_color"]],
skin_color %in% filter_list[["skin_color"]]
)
我们可以用来
reduce2
迭代地应用filter
语句,例如:检查是否正确:
您可以尝试以下
rowMeans
+mapply
或
Reduce
+Map
或者只是一个基础的 R组合
subset
++Reduce
Map
给出
基准
如果“效率”(在标题中)指的是速度,您可以在此处查看基准测试
这表明
使用 base
Map
ing 和Reduce
ing:请注意,接受的解决方案
purrr::reduce2
速度要快两倍多。