如何在R中使用字符作为函数定义

Din*_*air -2 r function character

我有很多字符,实际上是函数定义.如何使用该字符执行这些功能?我的角色如下:

foo1 <- "function(p1,p2){, v <- 2, print(\"value is \"), print(v)}"

foo2 <- "function(){, cName <- .Call(\"companyNames\"), return(cName)}"

foo3 <- "function(tickers,field,date){,df<-data.frame(Ticker = tickers, Field = field, Date = date), return(df)}"
Run Code Online (Sandbox Code Playgroud)

...等等

我需要一个通用的方法来执行所有这些功能.

seb*_*n-c 7

编辑:你已经改变了你的问题,所以我修改了我的答案:

do.call(eval(parse(text=foo1)), list())
Run Code Online (Sandbox Code Playgroud)

您可以在其中的每个函数中添加命名列表list().但坦率地说,你所尝试的是接近荒谬的.我不知道你是如何进入一个需要这些工具的位置的.从这里开始,你将遇到各种各样的范围问题.

旧解决方案:

fun <- eval(parse(text="function(p1,p2){v <- 2; print(paste0(\"value is \", v))}"))
fun()
## [1] "value is 2"
Run Code Online (Sandbox Code Playgroud)

  • 但老实说,我怀疑你为什么要这样做.我建议您参考以下内容:`library(fortunes); 幸运(106)`. (4认同)