【发布时间】:2020-01-31 23:10:51
【问题描述】:
如何利用魔术点 (...) / 省略号来过滤任意列?
df = tibble::tibble(col1 = c('a', 'b', 'c'), col2 = c(1,3,4))
my_func = function(x, ...){
df %>%
dplyr::filter(... == x)
}
my_func('a', col1)
# Should return:
# A tibble: 1 x 2
col1 col2
<chr> <dbl>
1 a 1
【问题讨论】:
-
您通常希望将数据框作为第一个参数传递给
dplyr-type 函数。尝试将参数切换为dataframe, string, ...。此外,...意味着可能有多个列 - 当您有多个列进入时,您希望如何进行比较? -
确实如此,这是遗留代码库中的一个特定用例。我必须削减它,这基本上是我要重构的垫脚石。它肯定会转向使用变量名而不是
...