替换值然后输出表达式
substitute values and then output an expression
我有一个等式 a+bx
。我想要一个函数,当我输入 a = 2
和 b = 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
),那就更难了......
我有一个等式 a+bx
。我想要一个函数,当我输入 a = 2
和 b = 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
),那就更难了......