我有大约5000份小尺寸的csv文件。每一列都有最少4列和最多7列。我想把它们合并到一本工作簿中,或者放在单个电子表格上,或者合并到不同的电子表格中。例如,我已经提到了Trying to merge multiple csv files in R。第一个答案似乎有效,但安慰给了我以下错误信息:
错误:不能将列
V3从字符转换为数字,另外还有50个或更多警告(使用警告()查看前50个)
在R中,df是缺省函数,所以,我将值赋值为a<- list.files(.........),这是我出错的地方。谢谢你提前帮忙。
发布于 2020-05-03 07:12:53
这是因为在某些情况下,V3列被解释为字符,而在另一些情况下,则被解释为数字(readr::read_csv尝试猜测数据类型以加快导入)。
因此,您可以尝试以下方法
library(dplyr)
library(readr)
df <- list.files(path="yourpath", full.names = TRUE) %>%
lapply(read_csv, col_types = cols( .default = col_character())) ) %>%
bind_rows 您将在那里将所有列导入为字符,代价是性能(以及以后可能需要更改列类型)。
等效的data.table实现(应该更快)是:
library(data.table)
df <- lapply(list.files(path="yourpath", full.names = TRUE), fread)
df <- rbindlist(df, use.names = TRUE, fill = TRUE)https://stackoverflow.com/questions/61570804
复制相似问题