首页 > 解决方案 > 替换值,然后输出表达式

问题描述

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

标签: rexpression

解决方案


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

如果您不需要将等式(表达式)存储在符号中,这还不错:

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

如果你有ee <- expression(a+b*x),那么你可以使用这个答案

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

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

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


推荐阅读