小编jan*_*aor的帖子

当内部有嵌套函数时,如何在R中以编程方式创建函数?

我的目标是使用代码创建以下功能:

s <- c(x = 10)
a <- c(i = 3)

model <- function(s, a) {
  with(as.list(c(s, a)), {
    y <- x * i
    y * 10
  })
}

model(s, a)
Run Code Online (Sandbox Code Playgroud)

结果应为300。

我正在解析另一个软件,可以从该软件中提取方程式作为字符串。因此,我需要从这些字符串构造函数的主体。

我一直在尝试使用rlang库无济于事。

library(rlang)

func_body <- "with(as.list(c(s, a)), {
  y <- x * i
  y * 10
})";

foo <- new_function(
  exprs(s =, a = ),
  expr(!!parse(text = func_body))
)
Run Code Online (Sandbox Code Playgroud)

任何的想法?

r metaprogramming rlang

1
推荐指数
1
解决办法
70
查看次数

标签 统计

metaprogramming ×1

r ×1

rlang ×1