我是R的新手,我正在使用多项式线性回归。我有一个系数或权重的向量,我们可以说(为简单起见)
w <- c(1:9)
我需要将每个系数分别乘以x ^ j,其中j从0变为8并将它们相加以获得函数以便稍后绘制例如:(1 * x ^ 0 + 2 * x ^ 1 + 3 * x ^ 2 ...)。我知道我可以手动输入这些但是如果线性组合很大就变得单调乏味,我也知道我可以使用loes做回归但是对于这个练习我需要自己做。那么是否有一种非手动方式将这些系数和函数粘贴在一起以便以后与curve()一起使用?我在想:
curve(1*x^0 + 2*x^1 + 3*x^2...)
变为
curve(function(x))
其中function(x)包含想要的函数?
提前致谢。
答案 0 :(得分:2)
这应该有效
w <- c(1:9)
f <- function(x, coef){
n <- length(coef)
deg <- 0:(n-1)
sapply(x, function(x)sum(coef * x^deg))
}
curve(f(x, coef = w))
通过使用sapply,我们允许函数采用任意长度的向量。这允许将函数传递给curve
。