使用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)))

  #> # A tibble: 0 x 2
  #> # ... with 2 variables: a <dbl>, b <dbl>

}
凯文·阿森诺

除了小写错字外,大多数情况下都是这样,filter语句中的圆括号应位于变量而不是值上。

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

#> # A tibble: 0 x 2
#> # ... with 2 variables: a <dbl>, b <dbl>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当条件指定为字符串时,将 dplyr::filter 与数据库一起使用的 tidyeval 方法是什么?

使用dplyr :: filter()+ dplyr :: across()组合使用any(),all()等的正确方法是什么?

用dplyr :: filter说“匹配任何东西”的正确方法是什么?

创建带有传递给dplyr :: filter的参数的函数,解决nse的最佳方法是什么?

在我的应用函数中使用 dplyr 的 slice_sample() 的正确方法是什么?

在编程中使用dplyr filter()

如何使用dplyr :: filter()删除观察组

使用dplyr :: filter()删除NA观察值

如何在dplyr :: filter中使用变量?

使用dplyr :: filter问题创建R函数

dplyr使用累积方法按组汇总

使用 dplyr 进行 eval 解析的替代方法

如果用户使用行过滤器表达式调用select()而不是filter(),则dplyr的确切行为是什么?(Gotcha)

使用RPostgreSQL和dplyr将R连接到Redshift的理论是什么

当向量用作相等性的参数时,dplyr :: filter的行为是什么?

在 filter() 中使用 JQuery toggle() 的目的是什么?

为什么dplyr filter()在函数内不起作用(即使用变量作为列名)?

为什么使用all_vars> 0的dplyr filter_all对字符串起作用?

为什么dplyr :: filter不允许我使用两个垂直方向进行过滤?

在R(dplyr)中,为什么使用filter的顺序会影响输出?

使用(int [] [])的方法是什么意思?

使用 tableview 的正确方法是什么?

使用网格的正确方法是什么?

使用prepareForReuse的正确方法是什么?

使用Swift的延迟的正确方法是什么

使用goroutine的正确方法是什么?

使用'typedef'的正确方法是什么?

PasswordHasher方法使用的用户参数是什么?

使用XslCompiledTransform的正确方法是什么?