【问题标题】:Apply nls() function to multiple subsets将 nls() 函数应用于多个子集
【发布时间】: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 脚本,所以现在效果很好!

标签: r nls


【解决方案1】:

这样就可以了:sapply(2:19,function(jj) nls(x~y,subset=jj:20))。

【讨论】:

  • 很高兴它对你有用。请单击此答案上的复选标记,以便将问题标记为已回答。
猜你喜欢
  • 2021-11-17
  • 1970-01-01
  • 2019-03-27
  • 2019-09-08
  • 1970-01-01
  • 2016-04-20
  • 2020-10-06
  • 2019-11-17
  • 2013-06-06
相关资源
最近更新 更多