У меня есть что-то похожее на это:
Group1 <- list(Date=c("a","b","c"), Name=c("a2","b2"), Age=c("a3","b3","c3","d3"))
Group2 <- list(Date=c("a","b","c"), Name=c("a2","b2","b3"), Age=c("a3","b3","c3","d3"))
Group3 <- list(Date=c("a","b","c"), Name=c("a2","b2"), Age=c("a3","b3"))
all <- list(Group1,Group2,Group3)
all
Мне нужно добавить NA, чтобы каждый список дат, имен и возрастов имел одинаковую длину. Затем мне нужно преобразовать это в фрейм данных.
Я застрял в том, как добавить NA, так как у меня есть списки в списках. У меня будет более 1000 «Групп» со списками данных в них (всегда одинаковые категории Дата, Имя, Возраст, поэтому эта длина не меняется). Самый длинный список в этих группах всегда должен быть 4 для текущего примера, поэтому все, что меньше, должно иметь NA. Я видел такой код, который близок, но не работает для списков в списках:
## Compute maximum length
max.length <- max(sapply(all, length))
## Add NA values to list elements
l <- lapply(all, function(v) { c(v, rep(NA, max.length-length(v)))})
Могу ли я сделать что-то подобное для моего текущего набора данных?