2013-03-08 3 views
-5

У меня есть вложенный список (FCdat.pp.con[[x]][[y]]), в котором отдельные столбцы содержат значения матрицы (для каждого x и вложенного y). Теперь я хочу сделать матрицы, записав в dataframes.Запись в dataframe в double for loop

Однако, мне не удается присвоить матрицам правильное имя в двойном цикле. На данный момент мне удалось создать матрицы с информацией о «х», но не с информацией о «у». Пожалуйста, помогите мне или предложите другой способ сделать это.

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

ли самый нижний уровень списка содержит векторы строки (или col) требуемых матриц? Это немного сложно понять. – ndoogan

+0

Наивысший уровень [[x]] содержит информацию об объектах (n = 36), тогда как самый низкий уровень [[y]] указывает, какое содержимое (n = 5) имеет значение. Затем для каждого [[x]] и [[y]] я вычислял каждую ячейку матрицы. Поскольку я не знал лучшего, я вставлял эти значения матрицы в виде отдельных столбцов в список (так что 12 столбцов дополнительно). Теперь я хочу создать матрицы, к которым я могу получить доступ, с [[x]] и [[y]] значением. Надеюсь, это более ясно? Спасибо! – user2149098

ответ

0

Добавить это перед началом цикла: result <- lapply(1:36, function(.)vector("list",5))

Затем замените assign(paste0("Indmatr", x), Ind.matr) с result[[x]][[y]] <- Ind.matr.

Смежные вопросы