小编Sha*_*anu的帖子

使用dplyr :: filter的tidyeval方法是什么?

使用调用下面的函数foo(c("b"))。输出显示为内联。

什么是正确的写作方式df %>% filter(!!x > (!!x))

我提供了一个使用mutatetidyeval风格与进行对比的示例filter

foo <- function(variables) {

  x <- rlang::sym(variables[[1]])

  print(x)
  #> b

  print(typeof(x))
  #> [1] "symbol"

  df <- data_frame(a = 1, b = 2)

  print(df %>% mutate(!!x := 100 + !!x))

  #> # A tibble: 1 x 2
  #>         a     b
  #>       <dbl> <dbl>
  #>   1     1   102  

  print(df %>% filter(!!x  > (!!x)))

  #> Error in !x : invalid argument type

  print(df %>% filter(magrittr::is_greater_than(!!x, !!x)))

  #> # …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyeval

5
推荐指数
1
解决办法
780
查看次数

标签 统计

dplyr ×1

r ×1

tidyeval ×1