Как преобразовать результат lapply с элементами NA в кадр данных в R? - PullRequest
0 голосов
/ 29 марта 2019

У меня есть список в результате lapply, где функция покрыта функцией trycatch, потому что у меня есть очень длинный список, который мне нужен, чтобы мой код проходил без остановки при любой ошибке.Результат выглядит следующим образом: enter image description here

Я пытался использовать

test12 <- data.frame(matrix(unlist(y), nrow=length(y), byrow = T))

Однако кадр данных выглядит очень странно, и он не совсем в том порядке, который я хотел,Похоже, что NA [[20]] создала разрыв во фрейме данных.У кого-нибудь есть опыт, как преобразовать этот список во фрейм данных?Ожидаемые столбцы: Title, Description и Keywords, и возможно ли иметь эти NA-подобные элементы [[20]] в качестве значения NA во всех 3 столбцах?Спасибо.

Ответы [ 2 ]

1 голос
/ 29 марта 2019

С базой R мы можем сделать

do.call(rbind.data.frame, y)

#           Title Description Keywords
#2  Tetris Layout          NA       NA
#21 Tetris Layout          NA       NA
#3           <NA>          NA       NA
#4  Tetris Layout          NA       NA

Данные

y <- list(list(Title = "Tetris Layout", Description = NA, Keywords= NA), 
          list(Title = "Tetris Layout", Description = NA, Keywords= NA), 
          NA, 
          list(Title = "Tetris Layout", Description = NA, Keywords= NA))
0 голосов
/ 29 марта 2019

Другой вариант с tidyverse

library(tidyverse)
map_df(liste,  as_tibble) %>%
          select(1:3)
# A tibble: 4 x 3
#  Title Description Keyword
#  <chr> <chr>       <chr>  
#1 xxx   xxx2        xxx3   
#2 yyy   yyy2        yyy3   
#3 <NA>  <NA>        <NA>   
#4 zzz   zzz2        zzz3   

данными

liste  <- list(list("Title" = "xxx", "Description" = "xxx2", "Keyword" = "xxx3"),
             list("Title" = "yyy", "Description" = "yyy2", "Keyword" = "yyy3"),
             NA,
             list("Title" = "zzz", "Description" = "zzz2", "Keyword" = "zzz3"))
...