我想从单个 .xlsx 文件中导入由工作表名称中的公共字符串选择的多个工作表,并将它们连接成单个数据框。例如,如果我有一个名为 samples1、samples2、samples3、controls1、controls2、controls3 的工作表的 excel 文件 ('data.xlsx')。我想列出工作表名称,例如:
sheet_list <- lapply(excel_sheets('data.xlsx'), read_excel, path = 'data.xlsx')
然后,我想导入名称中包含“samples”的所有工作表,并将它们绑定到一个名为“samples”的数据框中。我怎样才能有效地做到这一点?
你非常接近!您可以使用lapply
等来使用基本 R 来完成此操作,但我经常使用该purrr
包执行此类任务。
library(purrr)
library(readxl)
sheets <- excel_sheets('data.xlsx')
sample_sheets <- sheets[grepl("samples", sheets)]
sheet_df <- map_dfr(sample_sheets, ~read_excel(path = 'data.xlsx', sheet = .x, id = .x))
这样做:
grepl
将工作表子集到名称中仅包含“样本”的工作表。map_dfr
遍历样品片材,读取每一个中和分配ID列等于所述表的名称,然后将其绑定所有的结果一起由行和返回一个数据帧。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句