【问题标题】:In R, how do you accumulate data from inside a loop to a numeric vector above the loop在 R 中,如何将循环内部的数据累积到循环上方的数字向量
【发布时间】:2015-02-17 02:48:30
【问题描述】:

我在 R 中遇到了一个问题,它试图将在 for 循环中收集的数据累积到循环开始之前定义的数字向量中,该循环将在结束前迭代 200 多次。当函数返回结果时,很明显向量只保存了循环最后一次迭代的数据。请参阅以下伪 codish 示例:

results <- numeric()

for(i in records) 
    a <- read a record in
    b <- identify complete cases in a
    c < sum(b)
    if(c < 10)
         d <- strip out rows with NAs in a
         results <- cor(d[3:4])
    endif
    print results
end

我相当确定的一件事是,我需要一些如何定义“结果”的长度,但在函数结束之前,确切的大小是未知的。

我们将不胜感激任何和所有帮助。

【问题讨论】:

  • results &lt;- c(results, cor(d[3:4]))

标签: r vector


【解决方案1】:

正如@Alex 指出的那样,您可以像这样扩展向量:

results <- c(results, cor(d[3:4]))

或者你可以像这样隐式扩展它:

results[i] <- cor(d[3:4])

或者您可以将上面的行与初始化完整的 像这样的长度向量:

results <- numeric(length(numeric())) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 2015-11-18
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2016-08-20
    相关资源
    最近更新 更多