Пакетное преобразование с write.xlsx и проблема с именем заголовка

#r #formatting #xlsx

#r #форматирование #xlsx

Вопрос:

Я выполняю пакетное преобразование большого количества файлов .csv в формат xlsx, используя write.xlsx в openxlsx пакете, который я использую для преобразования списка файлов (их более 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)
  

Проблема, с которой я столкнулся, заключается в том, что заголовки, в именах которых раньше были пробелы (опять же требуемый формат для базы данных), теперь имеют «.» там, где раньше были пробелы. Есть ли простой способ добавить к приведенному выше коду и заменить «.» на » «?

Ответ №1:

Попробуйте

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

Вы получили это «.» потому что R проверяет и преобразует имена ваших столбцов при чтении файла csv. Мы можем сохранить исходные имена, отключив эту проверку.