自动从R中的列表中提取多个数据帧

问题描述 投票:0回答:1

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

r
1个回答
0
投票

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)
© www.soinside.com 2019 - 2024. All rights reserved.