【问题标题】:how to store results from nested loops in R如何在R中存储嵌套循环的结果
【发布时间】:2020-09-15 01:22:31
【问题描述】:

我是使用 r 的新手,我需要一些帮助。 我有一个数据框“称为价格数据”(xts),它由 28 只股票(作为行)和不同日期的价格组成。 我想应用下面的公式(将股票价格的平方差相加)并存储应该是 28*28=784 的结果。我试图将它们存储在一个向量中,但给了我零。

storage<-vector("numeric",784)
for (i in 1:784){
  for(j in 1:28){
    for (k in 1:28){
      storage[i]<-sum(((pricedata[,j]-pricedata[,k])^2))
    }
  }
}

【问题讨论】:

标签: r loops nested-loops


【解决方案1】:

典型的 R 方法是使用 apply 系列函数。这是一个建议:

创建一个排列表。

loopindex <- expand.grid(j = 1:28, k = 1:28)

按行使用应用。

list.storage <-apply(loopindex , 1, function(x) {
                           sum(pricedata[, x[["j"]]] - pricedata[, x[["k"]]]) ^ 2 })

将您的列表转换为数据框

df<-do.call("rbind", list.storage)

【讨论】:

    猜你喜欢
    • 2017-04-16
    • 1970-01-01
    • 2021-06-15
    • 2021-02-13
    • 2021-04-12
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多