使用readxl R将excel文件读入单个数据框
我有一堆excel文件,我想读取它们并将它们合并到单个数据框中。 我有以下代码:
library(readxl) files <- list.files() f <- list() data_names <- gsub("[.]xls", "", files)
将每个excel文件读入数据框
for (i in 1:length(files)){ assign(data_names[i], read_excel(files[i], sheet = 1, skip = 6)) }
但是,如果我尝试将它保存在一个variables中,只保存了最后一个文件
for (i in 1:length(files)){ temp <- read_excel(files[i], sheet = 1, skip = 6) }
我会用plyr
来做到这plyr
:
library(readxl) library(plyr) files <- list.files(".", "\\.xls") data <- ldply(files, read_excel, sheet = 1, skip = 6)
如果你想添加一个文件名的列,你可以做:
data <- ldply(files, function(fil) { data.frame(File = fil, read_excel(fil, sheet = 1, skip = 6)) }
我build议在R中使用列表环境,assign可能相当混乱,你不能用GET来维持值。
应该是这样的:
l <- list() for (i in 1:length(files)){ l[[i]] <- read_excel(files[i], sheet = 1, skip = 6)) } ltogether <- do.call("rbind",l)