后续:R?中filter输入函数的识别



在我下面的foo()调用中,是否有一种方法可以在函数内部识别dot_first,这是...中捕获的第一个元素?

现在,dot_first不被识别。

library(tidyverse)
library(rlang)
foo <- function(...){

dots <- rlang::list2(...)  
dot_first <- names(dots)[1]

dat <- expand_grid(...)  
dat %>%
filter(!!dot_first != 1)
}
foo(study = 1:2, test = LETTERS[1:2])

您可以使用-

library(tidyverse)
foo <- function(...){
dots <- list(...)  
dot_first <- names(dots)[1]

dat <- expand_grid(...)  
dat %>%
filter(.data[[dot_first]] != 1)
}
foo(study = 1:2, test = LETTERS[1:2])
#  study test 
#  <int> <chr>
#1     2 A    
#2     2 B    

相关内容

  • 没有找到相关文章