【问题标题】:How to store a grouped loop object by categorical variable in R如何通过R中的分类变量存储分组循环对象
【发布时间】:2022-01-03 11:17:55
【问题描述】:

标题可能听起来令人困惑,但其想法是使用 R 中的循环从两个位置创建一组 Channel Darters 鱼 (FSAdata) 的种群参数数据。以下代码正在运行

require(FSA)
require(FSAdata)
require(car)

data("DarterOnt")
str(DarterOnt)

location <- unique(DarterOnt$river)

vb <- vbFuns(param = "Typical")

for (i in 1:length(location)) {
  dat <- filter(DarterOnt, river == location[i])

f.starts <- vbStarts(tl ~ age, data = dat)
f.fit[[i]] <- nls(tl ~ vb(age, Linf, K, t0), data = dat, start = f.starts)

}

f.fit[[1]]

但是,我应该先运行f.fit &lt;- nls(tl ~ vb(age, Linf, K, t0), data = dat, start = f.starts),而不单独运行[[i]](在之前运行“失败的代码”之后),然后重新运行上述代码以使循环正常工作。如果没有,将会有一个警告Error: object 'f.fit' not found。我对 R 中的循环不太熟悉,但导致这个问题的原因是什么?有什么解决办法吗?

【问题讨论】:

  • 循环前需要初始化f.fit对象。在循环开始之前,将 f.fit &lt;- list() 创建为一个空列表 - 然后您就可以在循环中分配给它,就像您拥有它一样。

标签: r loops


【解决方案1】:

对象需要先初始化,然后才能分配给它们的特定索引。

要初始化 f.fit 对象,在循环开始之前放入 f.fit &lt;- list() 以将其创建为一个空列表 - 然后您将能够在循环中分配给它,就像您拥有它一样

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 2021-08-21
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    相关资源
    最近更新 更多