繁体   English   中英

将具有不同长度的嵌套列表和空元素的列表转换为R中的数据帧

[英]Convert list with nested lists of different lengths and empty elements into dataframe in R

我想将以下列表转换为数据框。

test <- list(list("a",c("b","c","d"),character(0)),list("j",c("r","s"),character(0)),list("h",character(0),"i"))

我尝试了以下方法:

df.test <- do.call(rbind,Map(data.frame, V1=sapply(test, "[[", 1),V2=sapply(test, "[[", 2),V3=sapply(test, "[[", 3)))

但这不适用于包含character(0)的嵌套列表。 令人满意的输出如下所示:

     V1  V2  V3
  1  a   b   NA
  2  a   c   NA
  3  a   d   NA
  4  j   r   NA
  5  j   s   NA
  6  h   NA  i

提前谢谢了。

library(tidyverse)
test %>% 
  map_df(~.x %>% 
           map(~if(length(.)) . else NA) %>% 
           do.call(what = cbind) %>% 
           as_tibble) 

  V1    V2    V3   
  <chr> <chr> <chr>
1 a     b     NA   
2 a     c     NA   
3 a     d     NA   
4 j     r     NA   
5 j     s     NA   
6 h     NA    i   

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM