【问题标题】:How to load several excel files in R?如何在R中加载几个excel文件?
【发布时间】:2021-12-13 19:34:02
【问题描述】:
我有大约 50 个 excel 文件,它们都有相同的列名。我想将它们组合成一个数据框。这是我正在使用的代码:
dir("data", full.names = T) %>% map_dfr(read_excel)
excel 文件存储在名为 data 的文件夹中。但是,我收到以下错误:
错误:无法组合 ..1$Biaoti 和 ..26$Biaoti
如何强制列具有相同的类型? Biaoti 列在所有 excel 文件中只包含 0 或 1。
【问题讨论】:
标签:
r
excel
dplyr
tidyverse
purrr
【解决方案1】:
也许这个功能可以帮到你!
read_my_data <- function() {
if (!require(data.table)) {install.packages("data.table")}
temp <- list.files(pattern = "*.xls")
dados <- NULL
for(1 in length(temp)) {
df <- fread(temp[[i]], colClasses = c(Biaoti = "factor"))
dados <- rbind(dados, df)
}
return(dados)
}
read_my_data()
但是你必须先设置你的工作目录。这个工作目录必须有他们的excel数据。
这个函数读取*.xls文件,如果你的文件是*.xlsx你必须改变这个函数。
【解决方案2】:
你可以这样做:
library(dplyr)
library(purrr)
library(tydiverse)
library(readxl)
#Indicates the path of the folder where these xlsx are located
setwd('c:/.../folder')
#load files
file.list <- list.files(pattern='*.xlsx')
#creat the list files
df.list <- lapply(file.list, read_excel)
#makes the union of all in a dataframe
df_final<-purrr::reduce(df.list, rbind)