如何在R中将嵌套不相等的大列表转换为data.frame/datatable

如何在R中将嵌套不相等的大列表转换为data.frame/datatable,r,dataframe,R,Dataframe,我在推特上列出了一个很大的列表。每个顶部子列表twitter[[i]]都是为每个tweet创建的。但是不是每个顶部子列表都有相同的结构,其中一些可能没有特定的位置。我怎样才能将这样的列表转换成一个数据框,它的每一行都包含每条tweet的信息,并使用NA来弥补缺少的信息 让我们以twitter[[10101]](已编辑)为例: > str(twitter[[10101]]) $ retweeted : logi FALSE $ text

我在推特上列出了一个很大的列表。每个顶部子列表
twitter[[i]]
都是为每个tweet创建的。但是不是每个顶部子列表都有相同的结构,其中一些可能没有特定的位置。我怎样才能将这样的列表转换成一个数据框,它的每一行都包含每条tweet的信息,并使用
NA
来弥补缺少的信息

让我们以
twitter[[10101]]
(已编辑)为例:

 > str(twitter[[10101]])
 $ retweeted                  : logi FALSE
 $ text                       : chr "RT @TeriChristoph: W-T-H??? 'Rep. Speier: \030Women Will Attain The Position of First Class Citizens\031 Under Obamacare' http:"| __truncated__
 $ id_str                     : chr "182608843031842816"
 $ source                     : chr "<a href=\"http://www.tweetdeck.com\" rel=\"nofollow\">TweetDeck</a>"
 $ entities                   :List of 3
  ..$ urls         :List of 1
  .. ..$ :List of 4
  .. .. ..$ indices     : num [1:2] 116 136
  .. .. ..$ display_url : chr "shar.es/p4fyt"
  .. .. ..$ url         : chr "http://t.co/T62gHwaE"
  .. .. ..$ expanded_url: chr "http://shar.es/p4fyt"
  ..$ user_mentions:List of 1
  .. ..$ :List of 5
  .. .. ..$ id_str     : chr "15932085"
  .. .. ..$ screen_name: chr "TeriChristoph"
  .. .. ..$ name       : chr "Teri Christoph"
  .. .. ..$ id         : num 15932085
  ..$ hashtags     : list()
  .. ..- attr(*, "class")= chr "AsIs"
 $ favorited                  : logi FALSE
 $ contributors               : NULL
 $ place                      : NULL
 $ created_at                 : chr "Wed Mar 21 23:25:15 +0000 2012
 $ geo                        : NULL
 $ user                       :List of 38
  ..$ is_translator                     : logi FALSE
  ..$ show_all_inline_media             : logi FALSE
  ..$ profile_link_color                : chr "9D582E"
  ..$ id_str                            : chr "16504112"
  ..$ name                              : chr "Sheryl"
 $ id                         : num 1.83e+17
 $ truncated                  : logi FALSE
str(推特[[10101]] $retweeted:logi FALSE $text:chr“RT@TeriChristoph:W-T-H???众议员斯皮尔:\030根据奥巴马医改法案http://__ $id_街:chr“18260884301842816” $source:chr“” $实体:共3个 ..$URL:1个URL的列表 .. ..$ :4人名单 .. .. ..$ 索引:num[1:2]116 136 .. .. ..$ 显示url:chr“shar.es/p4fyt” .. .. ..$ 网址:chr“http://t.co/T62gHwaE" .. .. ..$ 扩展url:chr“http://shar.es/p4fyt" ..$user_提到:1个列表 .. ..$ :5人名单 .. .. ..$ 身份证号码:chr“15932085” .. .. ..$ 屏幕名称:chr“TeriChristoph” .. .. ..$ 姓名:chr“Teri Christoph” .. .. ..$ 编号:15932085 ..$hashtags:list() .. ..- 属性(*,“类”)=chr“AsIs” $favorited:logi FALSE $contributors:NULL $place:NULL $created_于:chr“Wed Mar 21 23:25:15+0000 2012 $geo:NULL $user:38人名单 ..$is_翻译:logi FALSE ..$show\u all\u inline\u媒体:logi FALSE ..$profile\u link\u颜色:chr“9D582E” ..$id_街:chr“16504112” ..$name:chr“Sheryl” $id:num 1.83e+17 $truncated:logi FALSE
关于将带有子列表的列表转换为数据帧,已经给出了很多答案。其中有任何一个有用吗?pkg:plyr中有一个
rbind.fill
函数,其描述是“按行组合data.frames,填充缺少的列”。如果您使用
dput(twitter[10100:10102])
,我会尝试一个解决方案。您可能还想尝试
data.table::rbindlist(…,fill=TRUE)