write.xlsx 和 header 名称问题的批量转换

Batch conversion with write.xlsx and header name issue

我正在使用 openxlsx 包中的 write.xlsx 将大量 .csv 文件批量转换为 xlsx 格式 我使用以下内容转换文件列表(超过 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)

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

尝试

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

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