【问题标题】:How to use non standard evaluation with dollar sign in r如何在 r 中使用带有美元符号的非标准评估
【发布时间】:2022-09-25 21:20:57
【问题描述】:

语境

我想在 R 中使用带有美元符号的非标准评估。

我想自定义一个带有两个参数的函数。 data 是输入数据框,var 是输入数据框中变量的名称。返回值是变量名对应的值。

我可以用fun1 做到这一点。

library(dplyr)

df = data.frame(a = 1:3)

fun1 <- function(data, var){
  data %>% pull({{var}})
}

> fun1(data = df, var = a)
[1] 1 2 3

问题

有什么方法可以使用非标准评估和美元符号($)来执行fun1 的功能。

我的解决方案如下(fun2),但报错。

fun2 <- function(data, var){    # Can\'t create fun2, it will report an error.
  data${{var}}
}

fun2(data = df, var = a)

    标签: r non-standard-evaluation standard-evaluation


    【解决方案1】:

    我们可能会使用

    fun2 <- function(data, var){  
         var <- deparse(substitute(var))
         data[[var]]
    }
    

    -测试

    > fun2(data = df, var = a)
    [1] 1 2 3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多