【发布时间】:2017-04-20 04:29:52
【问题描述】:
如果我明确定义参数(下例中的“a”和“b”),我可以在 R 处运行 nls 回归。但是,我如何在poly 函数中使用通用变量数/更高阶数对nls 进行编码?
df <- data.frame(var1 = rnorm(100), var2 = rnorm(100))
p <- as.data.frame(poly(df$var2, degree = 2))
names(p) <- paste0("poly", names(p))
df <- cbind(df, p)
nls(var1 ~ a*poly1 + b*poly2, data = df, start = list(a = 1, b = 2))
无法像lm 函数那样尝试代码:
nls(var1 ~ poly(var2, degree = 2), data = df, start = list(a = 1, b = 2)) #=> Error
【问题讨论】:
-
这与stackoverflow.com/questions/3643606/… 中提出的问题基本相同(没有直接答案)
标签: r lazy-evaluation nls