У меня есть список, который структурирован следующим образом:
mylist <- list(list(list()),
list(list()), list(list()), list(list()),
list(structure(list(source = c("IDcode", "IDcode", "IDcode"
), db_id = c("id13653662", "id3396732", "id995182")), class = "data.frame", row.names = c(NA,
3L))), list(structure(list(source = c("IDcode", "IDcode"
), db_id = c("id1494969", "id869437")), class = "data.frame", row.names = 1:2)),
list(structure(list(source = c("IDcode", "IDcode"), db_id = c("id578674",
"id531006")), class = "data.frame", row.names = 1:2)), list(
structure(list(source = c("IDcode", "IDcode"), db_id = c("id578673",
"id531005")), class = "data.frame", row.names = 1:2)))
> mylist
[[1]]
[[1]][[1]]
list()
[[2]]
[[2]][[1]]
list()
[[3]]
[[3]][[1]]
list()
[[4]]
[[4]][[1]]
list()
[[5]]
[[5]][[1]]
source db_id
1 IDcode id13653662
2 IDcode id3396732
3 IDcode id995182
[[6]]
[[6]][[1]]
source db_id
1 IDcode id1494969
2 IDcode id869437
[[7]]
[[7]][[1]]
source db_id
1 IDcode id578674
2 IDcode id531006
[[8]]
[[8]][[1]]
source db_id
1 IDcode id578673
2 IDcode id531005
Я хочу преобразовать его в вектор, который будет храниться в виде столбца в кадре данных. В идеале вектор должен иметь NA, где есть пустой список (например, от [[1]]
до [[4]]
), и если список заполнен, он просто вводит коды идентификаторов, разделенные ;
, например: id13653662; id3396732; id995182
.
Другими словами, я хотел бы, чтобы результирующий вектор выглядел так:
> mylist
[1] NA NA NA
[4] NA "id13653662; id3396732; id995182" "id1494969; id869437"
[7] "id578674; id531006" "id578673;id531005"
Каков наилучший способ сделать это?