2013-03-08 89 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)