我正在尝试使用以下代码将.xlsx格式的80多个excel文件读取并合并到一个数据库中:
library(readxl)
library(purr)
library(dplyr)
library(tidyverse)
file.list <- list.files(pattern='*.xlsx')
alldata <- file.list %>%
map_dfr(read_excel) %>%
reduce(bind_rows)
我遇到的问题是Error: Column 'Cage' can't be converted from numeric to character
出现了。当我在其他列上遇到此问题时,我只需要从列中删除所有意外的非数字字符即可。但是,我无法对此列进行此操作,因为我需要这些列有时包含正斜杠。有人可以帮助我避免这个问题吗?
注意:无论我使用reduce(rbind_list)
,reduce(rbind.fill)
还是reduce(rbind)
答案 0 :(得分:0)
library(readxl)
library(tidyverse)
alldata <- file.list %>%
map_dfr(~read_excel(.x) %>%
mutate_all(as.character))
猜猜您可能已完成此操作,但可以看到此问题困扰其他人。您可以通过添加%>% mutate_all(as.character)
来标准化read_excel
函数中的每一列来解决此问题。