如何将一个变量名传递给函数中的参数?
如何将一个变量名传递给函数中的参数?
我是一个对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
进行分组。我该如何使其工作?
问题的原因是在函数中传递变量名时出现了错误。解决方法是使用rlang包中的双花括号运算符({{}})来传递未引用的变量。
在上述代码中,函数myfunc使用了dplyr和rlang两个包。函数接受三个参数:dat、groupvar和interestvar。在函数内部,使用双花括号运算符将groupvar和interestvar作为变量名传递给group_by和summarize函数。
通过调用myfunc函数,并传递参数dat、groupvar和interestvar,可以得到按照groupvar分组的interestvar的均值。
然而,原问题中还提到了在添加了更多代码后出现了错误。具体来说,在计算quantile、mutate和select函数时,使用了未引用的变量名groupvar1和interestVar1,导致报错。同时,也无法调用iqr变量。
对于这个问题,建议将其作为一个新问题进行提问,因为原问题中并没有提供这些额外的信息。