将函数转换为字符串

时间:2015-10-22 21:39:42

标签: r

我已经定义了一个变量,它是一个函数列表。

var_function <- mean

我可以使用任何功能。如何将函数mean转换为字符串?谢谢你的任何建议。如果我的问题不明确,请告诉我。

2 个答案:

答案 0 :(得分:12)

您可以使用deparse()将任何函数转换为逐行字符向量。

deparse(setNames)
# [1] "function (object = nm, nm) "
# [2] "{"                          
# [3] "    names(object) <- nm"    
# [4] "    object"                 
# [5] "}"  

答案 1 :(得分:3)

从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