我有一个本地文件夹,其中包含相同格式的excel文件。每个Excel文件有10张纸。
我希望能够执行以下操作:
1)读取R中的所有excel文件
2)将所有结果绑定在一起,但按工作表。
3)结果将是将所有excel文件绑定在一起的10个新数据框。
4)新列将添加文件名
我已经查看了代码,我能找到的最好的方法是它,但是按工作表却没有做到:
files = list.files()
library(plyr)
library(readr)
library(readxl)
data2=lapply(files, read_excel)
for (i in 1:length(data2)){data2[[i]]<-cbind(data2[[i]],files[i])}
all_data <- do.call("rbind.fill", data2)
有人能成功吗?
预先感谢
答案 0 :(得分:1)
如果您愿意,也可以使用tidyverse
方法对其进行矢量化。
require(tidyverse)
df <- list.files(path = "your_path",
full.names = TRUE,
recursive = TRUE,
pattern = "*.xls") %>%
tbl_df() %>%
mutate(sheetName = map(value, readxl::excel_sheets)) %>%
unnest(sheetName) %>%
mutate(myFiles = purrr::map2(value, sheetName, function(x,y) {
readxl::read_excel(x, sheet = paste(y))})) %>%
unnest(myFiles)
*以某种方式我无法对其进行举报,因此我正在从here复制我的答案