【发布时间】:2012-09-11 18:35:50
【问题描述】:
我需要对整个数据集运行非线性最小二乘回归,然后对该数据集的几个子集重复回归。我可以为单个子集执行此操作;例如(其中 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] 中的错误:无效的下标类型 'list'”。我非常希望避免复制和粘贴 nls() 20 次。非常感谢任何帮助。
【问题讨论】:
-
你试过
datasubsets[[i]]吗? -
也许我睡着了,但
sapply(2:19,function(jj) nls(x~y,subset=jj:20))不是为你做的吗? -
这是个好主意。我已经尝试过了,目前 R 控制台已挂起尝试计算。它还在翻腾……你说的 jj 是什么意思?
-
我的问题是我自己的 y 脚本,所以现在效果很好!