在 R 的函数调用中记录传递的值
recording the passed value in a function call in R
当我调用一个函数时,我想在函数的输出中记录一个或多个传递给函数的参数。当函数参数指向另一个对象时,我不知道该怎么做。我尝试了 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()
Returns:
meancol1 datasetused
1 3 usedata
我想看的是:
meancol1 datasetused
1 3 awesomedf
使用顶部的 deparse/substitute
在它成为计算表达式之前捕获它
myfunction <- function(usedata = awesomedf){
val <- deparse(substitute(usedata))
usedata %>%
summarize(meancol1 = mean(a)) %>%
mutate(datasetused = val)
}
-测试
myfunction()
# meancol1 datasetused
#1 3 awesomedf
当我调用一个函数时,我想在函数的输出中记录一个或多个传递给函数的参数。当函数参数指向另一个对象时,我不知道该怎么做。我尝试了 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()
Returns:
meancol1 datasetused
1 3 usedata
我想看的是:
meancol1 datasetused
1 3 awesomedf
使用顶部的 deparse/substitute
在它成为计算表达式之前捕获它
myfunction <- function(usedata = awesomedf){
val <- deparse(substitute(usedata))
usedata %>%
summarize(meancol1 = mean(a)) %>%
mutate(datasetused = val)
}
-测试
myfunction()
# meancol1 datasetused
#1 3 awesomedf