Совокупный результат в списке - PullRequest
0 голосов
/ 22 февраля 2019

Я хотел бы знать, как создавать столбцы всех состояний и их соответствующего времени (каждый список соответствует идентификатору). 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 Ответ

0 голосов
/ 23 февраля 2019

Следующее должно возвращать фрейм данных, содержащий столбцы для идентификаторов, состояний и времени.Идентификаторы будут основаны на именах элементов списка.Если используется неназванный список, то в качестве идентификатора будет использоваться индекс списка.

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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...