如何将带有NA项目的lapply的结果转换为R中的数据帧?

时间:2019-03-29 05:52:50

标签: r dataframe lapply

我有一个lapply的结果列表,其中该函数被trycatch函数覆盖,因为我有一个超长的列表,需要我的代码进行检查而不会被任何人停下来错误。结果看起来像这样: enter image description here

我尝试使用

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

但是,数据框看起来很奇怪,而且并不是我想要的顺序。看起来NA [[20]]在数据帧中创建了一个中断。任何人都有关于如何将此列表转换为数据框的经验?预期的列为:TitleDescriptionKeywords,是否有可能在所有3列中都将类似项[[20]]的NA作为NA值?谢谢。

2 个答案:

答案 0 :(得分:1)

使用基数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))

答案 1 :(得分:0)

带有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"))