在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