替换值然后输出表达式

substitute values and then output an expression

我有一个等式 a+bx。我想要一个函数,当我输入 a = 2b = 4 时,R 会自动输出 2+4x 作为表达式。我不知道如何在程序 R.

中执行此操作

这可能会非常棘手,并且在一定程度上取决于您的方程式的存储方式。

如果你不需要在符号中存储方程(表达式),这还不错:

f <- function(a,b) { bquote(.(a)+.(b)*x) }
f(2,4)
## 2 + 4 * x

如果你有ee <- expression(a+b*x),那么你可以使用this answer到达

L <- list(a=2,b=4)
do.call(substitute, list(ee[[1]], L))
## or substituteDirect(ee[[1]], L)
## 2 + 4 * x

(我不是 100% 确定为什么您必须使用 [[1]] 来提取表达式的“正文”,但您确实这样做了。)

如果你想用并列表示的乘法来做到这一点(即将 a+bx 解释为 a+b*x),那就更难了......