如何将一个变量名传递给函数中的参数?

7 浏览
0 Comments

如何将一个变量名传递给函数中的参数?

我是一个对R新手,我想为不同的变量调用一段代码,并且我想做这样的事情:\n

   myfunc<- function(dat, groupvar, interestvar){
      a<- dat%>% group_by(groupvar) %>% summarize(m=mean(interestvar))
         ..... other codes ....
      return(a)   }
myfunc(data=newdata, groupvar=variable1, interestvar=variable3)
myfunc(data=newdata, groupvar=variable2, interestvar=varaible4)

\n这里的variable1-vari都是newdata中的变量。似乎如果我调用intrestvar=newdata$varaible3,那部分代码将起作用。然而,我调用groupvar的方式仍然没有告诉函数按variable1进行分组。我该如何使其工作?

0
0 Comments

问题的原因是在函数中传递变量名时出现了错误。解决方法是使用rlang包中的双花括号运算符({{}})来传递未引用的变量。

在上述代码中,函数myfunc使用了dplyr和rlang两个包。函数接受三个参数:dat、groupvar和interestvar。在函数内部,使用双花括号运算符将groupvar和interestvar作为变量名传递给group_by和summarize函数。

通过调用myfunc函数,并传递参数dat、groupvar和interestvar,可以得到按照groupvar分组的interestvar的均值。

然而,原问题中还提到了在添加了更多代码后出现了错误。具体来说,在计算quantile、mutate和select函数时,使用了未引用的变量名groupvar1和interestVar1,导致报错。同时,也无法调用iqr变量。

对于这个问题,建议将其作为一个新问题进行提问,因为原问题中并没有提供这些额外的信息。

0