O meu filter_list
tem um grande número de elementos. A filtragem abaixo funciona, mas como alguém tornaria a dplyr::filter
mais concisa?
Não consegui all_of
trabalhar.
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"]]
)
Poderíamos usar
reduce2
para aplicar iterativamentefilter
instruções, por exemplo:Verifique se está correto:
Você pode tentar
rowMeans
+mapply
como abaixoou
Reduce
+Map
ou apenas uma combinação básica R
subset
+Reduce
+Map
o que dá
Referência
Se "Eficiência" (no título) se refere à velocidade, você pode verificar o benchmarking aqui
que mostra
Usando base
Map
ing eReduce
ing:Observe que a solução aceita
purrr::reduce2
é mais que duas vezes mais rápida.