1
我正試圖在R中創建一個數組,其中矩陣單元格是從現有值集合中填充的。例如,如何通過循環從R中現有的一組值中自動填充矩陣?
我有3組,每組有6個值。
valuecos = c(1,2,3,4,5,6)
directcos = c(10,20,30,40,50,60)
pricecos = c(100, 200, 300, 400,500,600)
我要的是下面的數組
[,1] [,2] [,3]
[1,] 1 10 100
[2,] 2 20 200
[3,] 3 30 300
, , 2
[,1] [,2] [,3]
[1,] 4 40 400
[2,] 5 50 500
[3,] 6 60 600
現在,我手動這樣做
lag1<-matrix(c(valuecos[1],valuecos[2],valuecos[3],directcos[1],directcos[2],directcos[3],pricecos[1],pricecos[2],pricecos[3]), nrow=3, ncol=3)
lag2<-matrix(c(valuecos[4],valuecos[5],valuecos[6],directcos[4],directcos[5],directcos[6],pricecos[4],pricecos[5],pricecos[6]), nrow=3, ncol=3)
matrices <- list(lag1, lag2)
matlist <- array(data = do.call(cbind, matrices), dim = c(dim(matrices[[1]]), length(matrices)));
但是陣列可能會更大,因此可能的設置和值數每套,所以我想通過循環自動化整個陣列創建,以避免錯誤。我不是循環中的大專家,所以我只能得到很多仍然缺少的代碼。我假設我需要一個外部循環來獲得數組中矩陣的數量,然後是一個內部循環,我可以將單個矩陣單元填充到數值集之外?
lags = t
nrow = a
nrow = b
matlist = array(NA,c(a,b,t))
for (i in 1:t){
matlist[,,i] = ????
lag = matrix(NA, nrow = a, ncol=b)
for (r in 1:a){
for (c in 1:b){
lag[,,] <- (valuecos[r]... ???)
}
}
}
如果有人能夠幫助我進一步,那將是非常好的。謝謝!
我不知道這給了我一個數組,在那裏我可以比稍後再從中提取值,如DD [1,1,1] = 1? – User23
對此有幫助嗎? –