将函数参数保存为字符

Save function argument as character

我想将函数的参数保存为 r 中的变量。 我试过 deparse,但在数据帧上它 returns 是错误的。下面是我想要的。

dataframe <- data.frame(a=c(1, 2, 3), b=c(3, 6, 8))

afunction <- function(arg1, arg2) {
  arg1_character <- deparse(arg1)
  arg2_character <- deparse(arg2)
}

afunction(a ~ b, dataframe)

基于这个简单的示例,我需要以下输出:

arg1_character <- "a~b"
arg2_character <- "dataframe"

尝试deparse(substitute())

afunction <- function(arg1, arg2) {
  arg1_character <- deparse(substitute(arg1))
  arg2_character <- deparse(substitute(arg2))
  c(arg1_character, arg2_character)
}

afunction(a ~ b, dataframe)
# [1] "a ~ b"     "dataframe"

或尝试match.call()

afunction2 <- function(arg1, arg2) {
  cat('Call:\n')
  match.call()
}
afunction2(a ~ b, dataframe)
# Call:
# afunction2(arg1 = a ~ b, arg2 = dataframe)