如何在 R 中存储嵌套循环的结果

how to store results from nested loops in R

我是 r 的新手,需要一些帮助。 我有一个数据框 'called price data' (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 方法是使用 apply 函数族。这是一个建议:

创建 table 个排列。

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)