У меня есть функция, определенная следующим образом:
fn1 <- function(var = NULL) {
if (missing(var)) var else deparse(substitute(var))
}
Я могу вызвать эту функцию, и она дает мне то, что я хочу.
fn1()
# NULL
fn1(test)
# [1] "test"
Теперь я хочу функционализировать обработку парсинга var
.
fn2 <- function(var = NULL) {
deparse_var(var)
}
deparse_var <- function(var) {
if (missing(var)) var else deparse(substitute(var))
}
Но это не дает мне ожидаемого результата
fn2()
# [1] "var"
fn2(test)
# [1] "var"
Поскольку у меня есть значение var
внутри deparse_var()
, я могу проверить, не это NULL
. Но deparse
не работает, если это не так.
deparse_var <- function(var) {
if (is.null(var)) var else deparse(substitute(var))
}
fn2()
# [1] NULL
fn2(test)
# Error in deparse_var(var) : object 'test' not found