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

时间:2013-02-19 04:38:01

标签: 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)}"

...等

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

1 个答案:

答案 0 :(得分:7)

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

do.call(eval(parse(text=foo1)), list())

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

旧解决方案:

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