首页 > 解决方案 > 使用R从多个excel文件中提取数据

问题描述

我在具有相似结构的文件夹中有许多 excel 文件: 在此处输入图像描述

我想将它输出到类似的东西: 在此处输入图像描述

这是我尝试过的。虽然我能够提取 B15:G17 中的单元格范围,但如何将单元格 B8 附加到列中?另外,可以将第 10 行作为列标题吗?

library("readxl")

file.list <- list.files(path=".", pattern=".xlsx")

df.list <- lapply(file.list, read_excel, sheet=1, range=("B15:G17"), col_names=FALSE, col_types = NULL)
df <- data.frame(df.list)

标签: rexcelextract

解决方案


read.xlsxfromopenxlsx更灵活一点,因为我们可以指定读取特定单元格的参数rows/cols以及startRow用于指定起始行

library(openxlsx)
lst1 <- lapply(file.list, function(x) read.xlsx(x, sheet = 1, startRow = 10, cols = 3:6, rows = 15:17))

另外,单独读取特定单元格,然后将其绑定为每个数据集中的新列“ID listMapcbind

lst2 <- lapply(file.list, function(x) setNames(read.xlsx(x, sheet = 1,
       rows = 8, cols = 2), 'ID'))

Map(cbind, ID = lst2, lst1) 

推荐阅读