У меня есть коллекция mon go, которую я свернул в список фреймов данных. Примерно так:
have <- list(
structure(list(var2 = c(0L, 0L, 0L), var3 = c(0.06, 0.05, 0.1), var1 = c("D", "B", "A")), class = "data.frame", row.names = c(NA, 3L)),
list(),
structure(list(var1 = c("A", "B", "C"), var2 = c(1L, 1L, 2L), var3 = c(0.08, 0.08, 0.5)), class = "data.frame", row.names = c(NA, 3L)),
structure(list(var3 = c(0.05, 0.5, 0.01), var1 = c("B", "C", "D"), var4 = c("X", "Y", "Z"), var2 = c(0L, 0L, 0L)), class = "data.frame", row.names = c(NA, 3L)),
structure(list(var2 = c(0L, 0L), var3 = c(0.025, 0.1), var1 = c("A", "C")), class = "data.frame", row.names = 1:2),
structure(list(var3 = 0.05, var1 = "B", var2 = 0L), class = "data.frame", row.names = 1L)
)
Обратите внимание, что второй элемент - это список длиной 0 и что размеры фрейма данных различаются. Я хочу извлечь var1
и порядок элементов списка. Для списка длиной 0 я хочу извлечь NA.
want <- data.frame(listID = seq(1:6), var1 = c("D, B, A", NA, "A, B, C", "B, C, D", "A, C", "B"))
want
# listID var1
#1 1 D, B, A
#2 2 <NA>
#3 3 A, B, C
#4 4 B, C, D
#5 5 A, C
#6 6 B