我需要对整个数据集运行非线性最小二乘回归,然后对该数据集的几个子集重复回归。我可以对单个子集执行此操作;例如(其中 y 是通用逻辑方程,x 是从 1 到 20 的向量):
example = nls(x ~ y, subset = c(2:20))
但我想在 3:20、4:20、5:20 等时间执行此操作。我尝试了 for 循环:
datasubsets <- sapply(2:19, seq, to = 20)
for (i in 1:19){
example[i] = nls(x ~ y, subset = datasubsets[i])
}
但我收到“xj[i] 中的错误:下标类型‘列表’无效”。我非常希望避免复制和粘贴 nls() 20 次。非常感谢任何帮助。
最佳答案
这可以完成工作:sapply(2:19,function(jj) nls(x~y,subset=jj:20))
。
关于r - 将 nls() 函数应用于多个子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12375845/