【发布时间】:2015-10-22 21:39:41
【问题描述】:
我已经定义了一个变量,它是一个函数列表。
var_function <- mean
我可以使用任何功能。如何将函数 mean 转换为字符串?感谢您的任何建议。如果我的问题不清楚,请告诉我。
【问题讨论】:
-
我想唯一不清楚的是您是否要将
mean的定义作为一个字符,或者您是否希望将函数的名称(即"mean")作为一个字符?跨度>
标签: r
我已经定义了一个变量,它是一个函数列表。
var_function <- mean
我可以使用任何功能。如何将函数 mean 转换为字符串?感谢您的任何建议。如果我的问题不清楚,请告诉我。
【问题讨论】:
mean的定义作为一个字符,或者您是否希望将函数的名称(即"mean")作为一个字符?跨度>
标签: r
您可以使用deparse() 将任何函数转换为逐行字符向量。
deparse(setNames)
# [1] "function (object = nm, nm) "
# [2] "{"
# [3] " names(object) <- nm"
# [4] " object"
# [5] "}"
【讨论】:
paste0(deparse(fun), collapse = " ")
deparse() 非常适合这个特定问题,其中var_function 作为变量提供。但是,如果它以字符串的形式提供("var_function"),则可以使用deparse(get()):deparse(get("var_function"))。
从 R 4.0 开始,还有deparse1()。这会将函数作为单个字符串返回。
f <- function(x) {
x + 2
}
strf <- deparse1(f)
strf
#> [1] "function (x) { x + 2 }"
要将函数字符串恢复为真正的函数,请使用eval() 和str2lang():
f2 <- eval(str2lang(strf))
f2(4)
#> 6
【讨论】: