如何在 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)
我是 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)