在R中的函数调用中记录传递的值

在R中的函数调用中记录传递的值,r,function,tidyeval,R,Function,Tidyeval,在编写调用函数时,我希望在函数的输出中记录传递给函数的一个或多个参数。当函数参数指向另一个对象时,我不知道该怎么做。我尝试了quo和expr等多种组合,但似乎缺少将字符串变量传递到data.frame的确切语法,如下所示: library(tidyverse) awesomedf <- data.frame(a = 1:5, b= "hihi") myfunction <- function(usedata = awesomedf){ usedat

在编写调用函数时,我希望在函数的输出中记录传递给函数的一个或多个参数。当函数参数指向另一个对象时,我不知道该怎么做。我尝试了
quo
expr
等多种组合,但似乎缺少将字符串变量传递到data.frame的确切语法,如下所示:

 library(tidyverse)
 awesomedf <- data.frame(a = 1:5, b= "hihi")
 
 myfunction <- function(usedata = awesomedf){
   usedata %>% 
     summarize(meancol1 = mean(a)) %>% 
     mutate(datasetused = deparse(substitute(usedata)))
 }
 
 myfunction()
我想看到的是:

  meancol1 datasetused
1        3     awesomedf

使用顶部的
deparse/substitute
,在它成为计算表达式之前捕获它

myfunction <- function(usedata = awesomedf){ 
val <- deparse(substitute(usedata))
  usedata %>% 
    summarize(meancol1 = mean(a)) %>% 
  mutate(datasetused = val)
 }
myfunction <- function(usedata = awesomedf){ 
val <- deparse(substitute(usedata))
  usedata %>% 
    summarize(meancol1 = mean(a)) %>% 
  mutate(datasetused = val)
 }
myfunction()
#   meancol1 datasetused
#1        3   awesomedf