如何用R中的变量计算表达式?

Ant*_*nko 1 variables expression eval r

我希望这段代码设置plt为10:

> var = "plt"
> eval(paste0(var, "<-", 10))
[1] "plt<-10"
Run Code Online (Sandbox Code Playgroud)

但相反,它返回一个字符串.

我试过eval(as.expression(paste0(var, "<-", 10)))和其他选项,但它仍然没有给出预期的结果.

代码有什么问题?

Rol*_*and 8

如果我理解你的评论,没有理由潜入鲨鱼出没的水域eval(parse()).尝试这样的事情:

myfun <- function(x, fun) {
  if (is.character(fun)) fun <- match.fun(fun)
  fun(x)
}

myfun(1:5, mean)
#[1] 3
myfun(1:5, "mean")
#[1] 3
Run Code Online (Sandbox Code Playgroud)