Как преобразовать xlsx файлы в csv файлы в RStudio? Необходимо преобразовать несколько рабочих книг с несколькими таблицами - PullRequest
0 голосов
/ 10 октября 2019

Попытка написать сценарий R, который преобразует несколько файлов книги xlsx в папку, а также конвертирует листы книги в отдельные файлы csv. Требуется один сценарий для автоматического применения кода ко всем книгам и их таблицам.

Ответы [ 4 ]

0 голосов
/ 11 октября 2019

Если вы используете Rstudio, возможно, у вас уже установлен пакет readxl. У них есть много рабочих процессов для общих случаев использования, объясненных здесь: https://readxl.tidyverse.org/articles/articles/readxl-workflows.html

Они также предоставляют этот хороший фрагмент кода, чтобы сделать то, что вы просите:

read_then_csv <- function(sheet, path) {
  pathbase <- tools::file_path_sans_ext(basename(path))
  df <- read_excel(path = path, sheet = sheet)
  write.csv(df, paste0(pathbase, "-", sheet, ".csv"),
            quote = FALSE, row.names = FALSE)
  df
}
path <- readxl_example("datasets.xlsx")
sheets <- excel_sheets(path)
xl_list <- lapply(excel_sheets(path), read_then_csv, path = path)
names(xl_list) <- sheets
0 голосов
/ 11 октября 2019

Ниже приведен пример преобразования одной книги xlsx в несколько файлов CSV. Обратите внимание, что преобразование типов не обязательно будет правильным.

xlsx_path <-"path_to_xlsx.xlsx"
sheet_names <- readxl::excel_sheets(xlsx_path)
# read from all sheets to a list of data frames
xlsx_data <- purrr::map(
    sheet_names,
    ~readxl::read_excel(xlsx_path,.x,col_types = "text",col_names = FALSE)
)
# write a list of data frame to csv files
purrr::walk2(
    xlsx_data,sheet_names,
    ~readr::write_csv(.x,paste0(xlsx_path,"-",.y,".csv"),col_names = FALSE)
)

# csv files will be saved as:
# path_to_xlsx-sheet1.xlsx, path_to_xlsx-sheet2.xlsx, ...

Если вам нужно применить эту функцию ко многим файлам xlsx. Используйте list.files(), чтобы получить путь ко всем файлам xlsx. И напишите цикл for или используйте другую функцию map для итерации этого процесса.

0 голосов
/ 11 октября 2019

Если вы перейдете на здесь и добавите «excel» и «xls» в строку поиска, вы получите список пакетов и функций, которые могут помочь.

0 голосов
/ 11 октября 2019

Для чтения файлов Excel существует несколько пакетов .

Лично я доволен пакетом xlsx , который можно использовать для чтения файлов Excel, напримера также их отдельные листы. Эта статья выглядит так, как будто она даст вам суть.

Каждый прочитанный вами рабочий лист затем вы сможете экспортировать в файлы CSV, используя встроенную в R write.csv (или write.csv2) метод.

...