首页 > 解决方案 > 从R中的列表中自动提取多个数据框

问题描述

我有一个包含 52 个元素的列表。一半的列表元素是具有 6 列和不同行数的数据框。剩下的一半元素只是列表,每个都包含字符和整数元素。我想使用自定义函数从列表中获取所有数据框。理想情况下,我想从列表中提取所有数据帧作为具有唯一名称的单独对象。我尝试使用循环和 if/else 函数将其自动化,但没有成功。问题是,我需要自动化这个过程,因为我将生成更多包含 50 到 60 个元素的列表。任何建议将不胜感激。

标签: r

解决方案


作为您的l清单:

classes.in.list=lapply(l,class)          # find classes in your list
idx=which(classes.in.list=="data.frame") # find indices of data.frames
mydfs=l[idx]                             # subset your list
data.table::rbindlist(mydfs,idcol=T)     # fast rbind with ID column (install data.table library)

推荐阅读