如何在dplyr函数的左侧执行NSE?

xiaodai

考虑

library(dplyr)
assign_rhs <- function(df, rhs) {
  df %>%
    mutate(lhs = {{rhs}})
}

a = data.frame(b = 1, c = 2)

assign_rhs(a, b)

将产生:

  b c lhs
1 1 2   1

而且我也可以assign_rhs(a, c)分配lhsc而不是b

我该如何做才能使他们lhs也能接受所{{}}提供的NSE治疗{rlang}

我试过了

library(dplyr)
assign_lhs_rhs <- function(df, lhs, rhs) {
  df %>%
    mutate({{lhs}} = {{rhs}})
}

a = data.frame(b = 1, c = 2)

assign_lhs_rhs(lhs, b)

但是定义函数时出现错误

Error: unexpected '=' in:
"  df %>%
    mutate({{lhs}} ="
马吕斯

如果使用:=代替,则=可以在作业的左侧使用NSE:

assign_lhs_rhs <- function(df, lhs, rhs) {
    df %>%
        mutate({{lhs}} := {{rhs}})
}

a = data.frame(b = 1, c = 2)

assign_lhs_rhs(a, out, b)

输出:

  b c out
1 1 2   1

我不是非标准评估专家,但据我所知,其原因是无法覆盖=工作方式,因此必须通过新的运算符来完成:=

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

函数中的dplyr NSE模式:嵌套条件

来自分类Dev

如何在dplyr中使用NSE来引用一个变量?

来自分类Dev

用户编写的函数中存在purrr + dplyr NSE问题

来自分类Dev

如何在函数中将Lapply与dplyr结合

来自分类Dev

如何使用dplyr在NSE中获取变量的名称

来自分类Dev

如何在Rascal中执行“函数指针”?

来自分类Dev

如何在Iterable上执行Stream函数?

来自分类Dev

如何在Javascript函数中执行Promises?

来自分类Dev

如何在Python中执行currying函数

来自分类Dev

如何在monetdb中执行MAL函数?

来自分类Dev

如何在pageunload上执行js函数

来自分类Dev

如何在 .onload 函数之后执行代码

来自分类Dev

如何在 jQuery 函数中执行 PHP

来自分类Dev

如何在触发后执行函数

来自分类Dev

如何在jQuery-UI的左侧定义用于调整大小的回调函数

来自分类Dev

如何在函数内多次执行 Ajax 函数?

来自分类Dev

如何在R中的函数中使用dplyr / magrittr的管道?

来自分类Dev

dplyr:如何在函数内使用group_by?

来自分类Dev

如何在group_by_at dplyr函数中添加分组

来自分类Dev

如何在dplyr中动态创建或调用变量和函数?

来自分类Dev

如何在 dplyr mutate() 函数中使用 case_when ?

来自分类Dev

在dplyr中将汇总函数转换为非标准评估NSE

来自分类Dev

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

来自分类Dev

使用dplyr和NSE动态构造具有不同参数的函数调用

来自分类Dev

为什么我使用SE或NSE dplyr函数得到不同的结果

来自分类Dev

dplyr:NSE加入中(作者)

来自分类Dev

如何在容器左侧对齐子菜单

来自分类Dev

Android:如何在TextView的左侧添加图标

来自分类Dev

如何在vim行的最左侧插入?

Related 相关文章

热门标签

归档