2013-03-08 56 views
-5

我有一個嵌套列表(FCdat.pp.con[[x]][[y]]),其中獨立列保存矩陣的值(對於每個x和嵌套的y)。現在我想通過寫入數據框來製作矩陣。以double爲循環寫入數據幀

但是,我沒有成功地給出矩陣在double for循環中的正確名稱。目前,我只成功地製作了關於「x」的信息,但沒有關於「y」的信息。請幫助我或建議另一種方法來做到這一點。

for (x in 1:36){ 
    for (y in 1:5){ 
     cells <- c(0, 
        FCdat.pp.con[[x]][[y]]$A12, 
        FCdat.pp.con[[x]][[y]]$A13, 
        FCdat.pp.con[[x]][[y]]$A14, 
        FCdat.pp.con[[x]][[y]]$A21,0, 
        FCdat.pp.con[[x]][[y]]$A23, 
        FCdat.pp.con[[x]][[y]]$A24, 
        FCdat.pp.con[[x]][[y]]$A31, 
        FCdat.pp.con[[x]][[y]]$A32, 
        0, 
        FCdat.pp.con[[x]][[y]]$A34, 
        FCdat.pp.con[[x]][[y]]$A41, 
        FCdat.pp.con[[x]][[y]]$A42, 
        FCdat.pp.con[[x]][[y]]$A43, 
        0) 
     rnames <- c("ALG1","ALG2","ALG3","ALG4") 
     cnames <- c("ALG1","ALG2","ALG3","ALG4") 
     Ind.matr <- t(matrix(cells, nrow=4, ncol = 4)) 
     dimnames(Ind.matr)=list(rnames, cnames) 
     assign(paste0("Indmatr", x), Ind.matr) 

    } 
} 
+0

列表的最低級別是否包含所需矩陣的行(或列)向量?這有點難以理解。 – ndoogan 2013-03-08 16:23:10

+0

最高等級[[x]]包含關於受試者的信息(n = 36),而最低等級[[y]]指示哪些內容(n = 5)是相關的。接下來,對於每個[[x]]和[[y]],我計算了矩陣的每個單元格。因爲我不知道更好,所以我將這些矩陣值作爲單獨列粘貼到列表中(所以需要12列)。現在我想製作可以用[[x]]和[[y]]值訪問的矩陣。我希望這更清楚?謝謝! – user2149098 2013-03-08 16:27:24

回答

0

加入這個循環開始前:result <- lapply(1:36, function(.)vector("list",5))

然後用result[[x]][[y]] <- Ind.matr取代assign(paste0("Indmatr", x), Ind.matr)