当前位置: 首页 > 知识库问答 >
问题:

如何将变量名传递给函数中的参数[重复]

郜彦
2023-03-14

我是r的新用户,我想回忆不同变量的代码块,我想做如下事情:

   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)

这里的variable1-vari都是newdata中的变量。如果我调用intrestvar=newdata$varaible3,这部分就可以工作了。但是,我调用groupvar的方式仍然没有告诉这个函数group by是由variable1完成的。我怎么让它工作?

共有1个答案

窦弘义
2023-03-14

您可以使用RLANG中的curly-curly运算符({{}})在函数中传递未加引号的变量。

library(dplyr)
library(rlang)

myfunc<- function(dat, groupvar, interestvar){
  a<- dat%>% group_by({{groupvar}}) %>% summarize(m=mean({{interestvar}}))
  return(a)   
}

myfunc(dat =mtcars, groupvar=cyl, interestvar=mpg)
#   cyl        m
#  <dbl>    <dbl>
#1     4 26.66364
#2     6 19.74286
#3     8 15.1    

myfunc(dat = mtcars, groupvar=am, interestvar=disp)
#     am        m
#  <dbl>    <dbl>
#1     0 290.3789
#2     1 143.5308
 类似资料:
  • 问题内容: 我有一个PHP函数,该函数需要可变数量的参数(使用和),但是我要传递给该函数的参数数量取决于数组的长度。有没有一种方法可以使用可变数量的参数来 调用 PHP函数? 问题答案: 如果参数在数组中,则该函数可能会对您有兴趣。 如果您要传递的参数数量取决于数组的长度,则可能意味着您可以将它们自己打包到数组中-并将其用于第二个参数。 然后,您传递给该数组的元素将作为不同的参数被函数接收。 例如

  • 问题内容: 我正在学习Python。希望有人指出我正确的方法。 这是我想在下面做的事情: 任何想法?提前致谢。 问题答案: 您不能将其作为自己的名称传递,但是可以将其添加到关键字中。 另外,您可以命名自己的参数: 类方法:

  • 问题内容: 这似乎是一个愚蠢的问题,但是我是这个话题的新手。我正在致力于关于节点js的承诺。我想将参数传递给Promise函数。但是我不知道。 而功能类似于 问题答案: 将Promise包裹在一个函数中,否则它将立即开始工作。另外,您可以将参数传递给函数: 然后,使用它: ES6: 用:

  • 我有一个react组件,我想用不同的参数调用相同的箭头函数,但我被困在如何传递参数给它,现在我在问自己,我能做到吗?

  • 问题内容: 在C / C++中,我经常发现在调试定义一个宏时很有用,例如,该宏可以打印出变量名及其值(即可以打印)。您可以使用“字符串化操作符的宏来得到变量名描述这里。有没有办法在Python中做到这一点? 换句话说,我想要一个功能 如果称为(或可能),它将打印出来。我意识到如果将变量及其名称都传递给函数,这样做很简单,但是我在调​​试时经常使用类似这样的函数,重复总是使我很烦。 问题答案: 并不

  • 问题内容: 是否可以获取传递给函数的变量的原始变量名?例如 以便: 返回值: 编辑: 我想要做的就是使一个函数像: ..并让函数根据传递给它的变量的名称生成文件名。 我想如果不可能的话,我只需要每次将变量和变量名作为字符串传递。 问题答案: 你不能 在传递给函数之前先对其进行评估。您所能做的就是将它作为字符串传递。