首页 > 解决方案 > 使用 write.xlsx 和标头名称问题进行批量转换

问题描述

我正在使用包中将很多 .csv 文件批量转换为 xlsx 格式write.xlsxopenxlsx我使用以下内容来转换文件列表(超过 200 个)。我需要这样做的原因是为了上传到数据库,它只接受 xlsx 文件。

filenames <- list.files("C:/split files", pattern="*.csv", full.names=TRUE)

for(i in filenames) {
  a <- read.csv(i)
  new_name <- sub('.csv', '.xlsx', i, fixed = TRUE)
  write.xlsx(a, new_name, row.names = F)

我遇到的问题是,以前在名称中包含空格的标题(同样是数据库所需的格式)现在有“。” 曾经的空间。有没有一种简单的方法可以添加到上面的代码中并替换“。” 和 ” ” ?

标签: rformattingxlsx

解决方案


尝试

read.csv(i, check.names = F)

你得到那个“。” 因为 R 在读取 csv 文件时会检查并转换您的列名。我们可以通过禁用该检查来保留原始名称。


推荐阅读