Совокупный результат в списке
Я хотел бы знать, как создавать столбцы всех состояний и их соответствующего времени (каждый список соответствует идентификатору). Qmatrix не важен, поскольку он остается тем же.
``$ :List of 3
..$ states : num [1:3] 1 2 2
..$ times : num [1:3] 0 5.23 15
..$ qmatrix: num [1:3, 1:3] -0.11 0.05 0.02 0.1 -0.15 0.07 0.01 0.1 -0.09
$ :List of 3
..$ states : num [1:6] 1 2 3 2 1 1
..$ times : num [1:6] 0 0.91 9.23 9.24 9.65 ...
..$ qmatrix: num [1:3, 1:3] -0.11 0.05 0.02 0.1 -0.15 0.07 0.01 0.1 -0.09
$ :List of 3
..$ states : num [1:2] 1 1
..$ times : num [1:2] 0 15
..$ qmatrix: num [1:3, 1:3] -0.11 0.05 0.02 0.1 -0.15 0.07 0.01 0.1 -0.09
$ :List of 3
..$ states : num [1:4] 1 2 3 3
..$ times : num [1:4] 0 10.7 13.7 15
..$ qmatrix: num [1:3, 1:3] -0.11 0.05 0.02 0.1 -0.15 0.07 0.01 0.1 -0.09
$ :List of 3
..$ states : num [1:4] 1 2 3 3
..$ times : num [1:4] 0 7.32 8.87 15
..$ qmatrix: num [1:3, 1:3] -0.11 0.05 0.02 0.1 -0.15 0.07 0.01 0.1 -0.09
$ :List of 3
..$ states : num [1:3] 1 2 2
..$ times : num [1:3] 0 7.07 15
..$ qmatrix: num [1:3, 1:3] -0.11 0.05 0.02 0.1 -0.15 0.07 0.01 0.1 -0.09
$ :List of 3
..$ states : num [1:3] 1 2 2
..$ times : num [1:3] 0 0.901 15
..$ qmatrix: num [1:3, 1:3] -0.11 0.05 0.02 0.1 -0.15 0.07 0.01 0.1 -0.09
$ :List of 3
..$ states : num [1:4] 1 3 2 2
..$ times : num [1:4] 0 5.85 6.26 15
..$ qmatrix: num [1:3, 1:3] -0.11 0.05 0.02 0.1 -0.15 0.07 0.01 0.1 -0.09
$ :List of 3
..$ states : num [1:4] 1 2 3 3
..$ times : num [1:4] 0 11.5 13 15
..$ qmatrix: num [1:3, 1:3] -0.11 0.05 0.02 0.1 -0.15 0.07 0.01 0.1 -0.09
Я хочу, чтобы это было в такой форме:
id state Time
1 1 0
1 3 15
2 1 0
2 3 9.666
2 2 0
2 3 10.5
1 ответ
Следующее должно вернуть фрейм данных, содержащий столбцы для идентификаторов, состояний и времени. Идентификаторы будут основаны на именах элементов списка. Если используется неназванный список, то в качестве идентификатора будет использоваться индекс списка.
if(is.null(names(my.lst))){
names(my.lst) <- c(1:length(my.lst))
}
df <- do.call(rbind, lapply(seq_along(my.lst), function(ids, vals, i){
tdf <- as.data.frame(vals[[i]][c(1:2)])
tdf$id <- ids[[i]]
return(tdf[, c('id','states','times')])
}, vals = my.lst, ids = names(my.lst)))