通过在 R 中给一些变量一个值来简化方程

Simplify an equation by giving some variable a value in R

我想简化下面的等式,同时改变b的值

b*(b*((1-b)*x) + (1-b)*y) + (1-b)*z

所以,如果我给 b = 0.9,

b <- 0.9
# the answer will be:
0.081x + 0.09y + 0.1z

原因是我想看看不同的 b 值将如何影响 x、y 和 z 的 weights/coefficients。

我不知道该怎么做,或者在 R 中是否可行。
感谢任何帮助。

我想你可以像下面那样尝试 Reduce

Reduce(function(u, v) b * u + v, (1 - b) * c(x, y, z))

你会看到

> b <- 0.9

> x <- 1e3

> y <- 1e2

> z <- 1e1

> Reduce(function(u, v) b * u + v, (1 - b) * c(x, y, z))
[1] 91

如果要查看xyz的系数,可以使用

> f <- function(b) (1 - b) * b^((3:1) - 1)

> f(0.9)
[1] 0.081 0.090 0.100

xyz的加权​​和可以写成

s = sum(f(0.9)*c(x,y,z))