在double for循环中写入数据帧

时间:2013-03-08 16:15:46

标签: r

我有一个嵌套列表(FCdat.pp.con[[x]][[y]]),其中单独的列包含矩阵的值(对于每个x和嵌套的y)。现在我想通过写入数据帧来制作矩阵。

但是,我没有成功地在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)

    }
}

1 个答案:

答案 0 :(得分:0)

在循环开始之前添加此项:result <- lapply(1:36, function(.)vector("list",5))

然后将assign(paste0("Indmatr", x), Ind.matr)替换为result[[x]][[y]] <- Ind.matr