Как экспортировать данные из R в CSV и Excel

⚡ Умное резюме

Экспорт данных из R включает в себя запись фрейма данных в форматы CSV, Excel, SPSS, SAS, STATA и собственные форматы R, а затем отправку того же файла в R. Google Drive or DropboxКаждый экспорт следует одному шаблону: функция, фрейм данных и путь назначения.

  • 📁 Пункт назначения: Функция getwd() сообщает рабочий каталог, и любое относительное имя файла записывается туда, если не указан полный путь.
  • 📄 CSV-экспорт: write.csv(df, “file.csv”) — это универсальный вариант, а write.csv2() переключается на разделители в виде точек с запятой.
  • 📗 Экспорт в Excel: Функция write.xlsx() из пакета xlsx требует наличия работающего интерфейса. Java установка на станок.
  • 🔄 Статистическое программное обеспечение: Пакет haven позволяет записывать файлы SPSS, SAS и STATA с помощью функций write_sav(), write_sas() и write_dta().
  • 💾 Собственные форматы: Функция saveRDS() хранит один объект, а функция save() — несколько, при этом обе функции точно сохраняют уровни факторов и атрибуты.
  • ☁️ Загрузка в облако: Google Drive и rdrop2 выполняют аутентификацию один раз за сессию, после чего загружают, скачивают и удаляют файлы непосредственно из R.

Экспорт данных из R CSV Excel

Как экспортировать данные из R

В этом уроке мы научимся экспортировать данные из среды R в различные форматы.

Чтобы экспортировать данные на жесткий диск, вам понадобится путь к файлу и расширение. Прежде всего, путь — это место, где будут храниться данные. В этом уроке вы увидите, как хранить данные:

  • Жесткий диск
  • Google Drive
  • Dropbox

Во-вторых, R может записывать данные во многих форматах. В этом руководстве рассматриваются основные расширения файлов:

  • CSV
  • XLSX
  • RDS
  • ПАВ
  • SPSS
  • СТАТА

Каждый экспорт имеет одинаковую структуру: один вызов функции, фрейм данных и путь назначения.

Экспорт на жесткий диск

Для начала вы можете сохранить данные прямо в рабочий каталог. Следующий код печатает путь к вашему рабочему каталогу:

directory <- getwd()
directory

Выход:

## [1] "/Users/15_Export_to_do"

Если не указан полный путь, все файлы записываются в указанную рабочую директорию. Путь по умолчанию различается в зависимости от системы, обычно это домашняя папка пользователя. macOS и Linux и папка «Документы» на WindowsОднако функция getwd() всегда показывает текущее значение. Измените его с помощью setwd() или просто передайте полный путь функции записи.

setwd("/Users/USERNAME/Downloads")

Создать фрейм данных

Сначала создайте небольшой фрейм данных: средние значения расхода топлива (mpg) и дисковых возможностей (disp), сгруппированные по типу передачи, из набора данных mtcars.

library(dplyr)
df <-mtcars %>%
    select(mpg, disp, gear) %>%
    group_by(gear) %>%
    summarize(mean_mpg = mean(mpg), mean_disp = mean(disp))
df

Выход:

## # A tibble: 3 x 3
##	gear mean_mpg mean_disp
##	<dbl>	<dbl>	<dbl>
## 1	3 16.10667  326.3000
## 2 	4 24.53333  123.0167
## 3	5 21.38000  202.4800

Таблица содержит три строки и три столбца. Вы можете создать файл CSV с помощью функции write.csv в R.

Как экспортировать DataFrame в файл CSV в R

Основной синтаксис write.csv в R для экспорта DataFrame в CSV в R:

write.csv(df, path)
arguments
-df: Dataset to save. Need to be the same name of the data frame in the environment.
-path: A string. Set the destination path. Path + filename + extension i.e. "/Users/USERNAME/Downloads/mydata.csv" or the filename + extension if the folder is the same as the working directory

Пример:

write.csv(df, "table_car.csv")

Code объяснение

  • write.csv(df, «table_car.csv»): создайте файл CSV на жестком диске:
    • df: имя фрейма данных в среде.
    • «table_car.csv»: назовите файл table_car и сохраните его как csv.

ВниманиеФункция write.csv2() записывает тот же файл, используя точку с запятой в качестве разделителя полей и запятую в качестве десятичного разделителя, что является общепринятой практикой в ​​большей части континентальной Европы.

write.csv2(df, "table_car.csv")

ВниманиеВ учебных целях мы создали функцию open_folder(), которая открывает для вас папку каталога. Вам просто нужно запустить приведенный ниже код и посмотреть, где хранится CSV-файл. Вы должны увидеть файл с именем table_car.csv.

# Run this code to create the function
open_folder <-function(dir){
	if (.Platform['OS.type'] == "windows"){
	shell.exec(dir)  
	} else {
	system(paste(Sys.getenv("R_BROWSER"), dir))
  }
}
# Call the function to open the folder
open_folder(directory)

Как экспортировать DataFrame в файл Excel в R

Экспорт в Excel осуществляется очень просто. Windows и немного сложнее в macOSОба приложения используют библиотеку xlsx, и разница заключается только в установке, поскольку xlsx зависит от неё. Java. Java Для загрузки посылки необходимо наличие соответствующего оборудования на устройстве.

Windows пользователей

On WindowsУстановите библиотеку напрямую с помощью conda:

conda install -c r r-xlsx

После установки библиотеки функция write.xlsx() создаст новую книгу Excel в рабочем каталоге:

library(xlsx)
write.xlsx(df, "table_car.xlsx")

Если вы являетесь пользователем Mac OS, вам необходимо выполнить следующие действия:

  • Шаг 1. Установите последнюю версию Java
  • Шаг 2. Установите библиотеку rJava
  • Шаг 3. Установите библиотеку xlsx.

Шаг 1) Вы можете скачать Java из официальных Oracle сайт и установите его.

Вы можете вернуться в Rstudio и проверить, какая версия Java установлен.

system("java -version")

Любые недавние Java Команда release работает. Если команда ничего не выдает, Java не установлен, и пакет xlsx не загрузится.

Шаг 2) Вам необходимо установить rjava в R. Мы рекомендовали вам установить R и Rstudio с Anaconda. Anaconda управляет зависимостями между библиотеками. В этом смысле Anaconda будет управлять тонкостями rJava установка.

Прежде всего вам необходимо обновить conda, а затем установить библиотеки. Вы можете скопировать и вставить следующие две строки кода в терминал.

conda update conda
conda install -c r r-rjava

Далее откройте rjava в Rstudio.

library(rJava)

Шаг 3) Наконец, пришло время установить xlsx. Еще раз, вы можете использовать Conda сделать это:

conda install -c r r-xlsx

Как и пользователи Windows, вы можете сохранять данные с помощью функции write.xlsx().

library(xlsx)

Выход:

## Loading required package: xlsxjars
write.xlsx(df, "table_car.xlsx")

Экспорт данных из R в другое программное обеспечение

Экспортировать данные в другое программное обеспечение так же просто, как и импортировать. Библиотека «гавань» предоставляет удобный способ экспорта данных в

  • SPSS
  • ПАВ
  • Stata

Прежде всего импортируйте библиотеку. Если у вас нет «убежища», вы можете пойти здесь для его установки.

library(haven)

SPSS-файл

Ниже приведен код для экспорта данных в программное обеспечение SPSS:

write_sav(df, "table_car.sav")

файл SAS

Так же просто, как spss, вы можете экспортировать в Sas.

write_sas(df, "table_car.sas7bdat")

STATA-файл

Наконец, библиотека Have позволяет записывать файл .dta.

write_dta(df, "table_car.dta")

Как экспортировать данные в собственные форматы R

Если вы хотите сохранить объект внутри R, а не передавать его другой программе, используйте один из двух встроенных форматов. Функция save() записывает один или несколько именованных объектов в файл .RData:

save(df, file ='table_car.RData')

Альтернативой является функция saveRDS(), которая хранит ровно один объект и позволяет читателю выбрать его имя при повторном входе:

# One object, name chosen at read time
saveRDS(df, file = "table_car.rds")
my_data <- readRDS("table_car.rds")

# Several objects, original names restored
save(df, directory, file = "workspace.RData")
load("workspace.RData")
Критерии saveRDS() / readRDS() сохранить() / загрузить()
Объектов на файл Ровно один Один или несколько
Имя объекта при перезагрузке Вы сами выбираете это. Восстановлено в сохраненном виде.
Перезаписывает среду Нет Да, молча
Обычное расширение .rds .RData

В скриптах предпочтительнее использовать функцию saveRDS(), поскольку функция load() может незаметно перезаписать существующий объект с тем же именем. Оба формата сохраняют уровни факторов, порядок и атрибуты в неизменном виде, чего не может сделать CSV.

Вы можете проверить файлы, созданные выше, в текущем рабочем каталоге.

Экспорт данных из R в файл STATA

Взаимодействие с облачными сервисами

Последнее, но не менее R оснащен фантастическими библиотеками для взаимодействия со службами облачных вычислений. Последняя часть этого руководства посвящена экспорту/импорту файлов из:

  • Google Drive
  • Dropbox

ВниманиеВ этой части руководства предполагается, что у вас есть учетная запись. Google и Dropbox. Если нет, вы можете быстро создать его для – Google Drive: https://accounts.google.com/SignUp?hl=en – Dropbox: https://www.dropbox.com/h

Google Drive

Вам необходимо установить библиотеку googledrive для доступа к функции, позволяющей взаимодействовать с Google Drive.

Библиотека в Анаконде пока недоступна. Вы можете установить его с помощью кода ниже в консоли.

install.packages("googledrive")

и вы открываете библиотеку.

library(googledrive)

Для пользователей, не использующих conda, установка библиотеки проста: можно использовать `install.packages('NAME OF PACKAGE')`, указав имя пакета в кавычках внутри скобок. R установит его в первое местоположение, возвращаемое функцией `.libPaths()`.

Загрузить на Google Drive

Чтобы загрузить файл в Google Для загрузки с диска вам необходимо использовать функцию drive_upload().

Каждый раз, когда вы перезапускаете Rstudio, вам будет предложено разрешить доступ tidyverse к Google Drive.

Основной синтаксис Drive_upload():

drive_upload(file, path = NULL, name = NULL)
arguments:
- file: Full name of the file to upload (i.e., including the extension)
- path: Location of the file- name: You can rename it as you wish. By default, it is the local name.

После запуска кода вам необходимо подтвердить несколько вопросов

drive_upload("table_car.csv", name = "table_car")

Выход:

## Local file: 
## * table_car.csv 
## uploaded into Drive file: 
## * table_car: 1hwb57eT-9qSgDHt9CrVt5Ht7RHogQaMk 
## with MIME type: 
## * text/csv

Вы вводите 1 в консоли, чтобы подтвердить доступ

Google Drive

Затем вас перенаправят на Google Для предоставления доступа к API нажмите «Разрешить».

Google Drive

После завершения аутентификации вы можете выйти из браузера.

Google Drive

В консоли Rstudio можно увидеть сводку выполненного шага. Google Файл, расположенный локально на Диске, успешно загружен. Google присвоить идентификатор каждому файлу на диске.

Google Drive

Вы можете увидеть этот файл в Google Spreadsheet.

drive_browse("table_car")

Выход:

Вы будете перенаправлены на Google Spreadsheet

Google Drive

Импорт из Google Drive

Надежный способ — загрузка по идентификатору файла. Если вам известно имя файла, сначала получите его идентификатор:

Внимание: в зависимости от вашего подключения к Интернету и размера вашего Диска это может занять некоторое время.

x <-drive_get("table_car")
as_id(x)

Google Drive

Вы сохранили идентификатор в переменной x. Функцияdrive_download() позволяет загрузить файл с Google Drive.

Основной синтаксис:

drive_download(file, path = NULL, overwrite = FALSE)
arguments:
- file:  Name or id of the file to download
-path: Location to download the file. By default, it is downloaded to the working directory and the name as in Google Drive
-overwrite = FALSE: If the file already exists, don't overwrite it. If set to TRUE, the old file is erased and replaced by the new one.

Наконец, вы можете скачать файл:

download_google <- drive_download(as_id(x), overwrite = TRUE)

Code объяснение

  • Drive_download(): Функция для загрузки файла с Google Drive
  • as_id(x): используйте идентификатор для просмотра файла в Google Drive
  • overwrite = TRUE: если файл существует, перезапишите его, иначе выполнение остановлено. Чтобы просмотреть имя файла локально, вы можете использовать:

Выход:

Google Drive

Файл хранится в вашей рабочей директории. Не забудьте добавить расширение файла перед открытием его в R. Полное имя можно создать с помощью функции paste() (например, table_car.csv).

google_file <-download_google$local_path
google_file
path <-paste(google_file, ".csv", sep = "")
google_table_car <-read.csv(path)
google_table_car

Выход:

##   X gear mean_mpg mean_disp
## 1 1    3 16.10667  326.3000
## 2 2    4 24.53333  123.0167
## 3 3    5 21.38000  202.4800

Наконец, вы можете удалить файл из вашего Google езды.

## remove file
drive_find("table_car") %>%drive_rm()

Выход:

Google Drive

Удаление обрабатывается асинхронно. GoogleПоэтому для исчезновения файла может потребоваться некоторое время.

Экспорт в Dropbox

R взаимодействует с Dropbox через библиотеку rdrop2. Библиотека также недоступна в Анаконде. Установить его можно через консоль

install.packages('rdrop2')
library(rdrop2)

Вы предоставляете временный доступ к Dropbox После аутентификации R сможет создавать, удалять, загружать и скачивать файлы в вашей папке. Dropbox.

Прежде всего, вам необходимо предоставить доступ к своему аккаунту. Учетные данные кэшируются в течение всего сеанса.

drop_auth()

Вы будете перенаправлены на Dropbox для подтверждения аутентификации.

Экспорт в Dropbox

Вы получите страницу подтверждения. Вы можете закрыть его и вернуться к R.

Экспорт в Dropbox

Вы можете создать папку с помощью функции drop_create().

  • drop_create('my_first_drop'): Создайте папку в первой ветке Dropbox
  • drop_create('First_branch/my_first_drop'): Создайте папку внутри существующей папки First_branch.
drop_create('my_first_drop')

Выход:

Экспорт в Dropbox

В паденииBox

Экспорт в Dropbox

Чтобы загрузить файл .csv в свой Dropbox, используйте функцию drop_upload().

Базовый синтаксис:

drop_upload(file, path = NULL, mode = "overwrite")
arguments:
- file: local path
- path: Path on Dropbox 
- mode = "overwrite":  By default, overwrite an existing file. If set to `add`, the upload is not completed.
drop_upload('table_car.csv', path = "my_first_drop")

Выход:

Экспорт в Dropbox

В паденииBox

Экспорт в Dropbox

Вы можете прочитать файл csv из Dropbox с помощью функции drop_read_csv()

dropbox_table_car <-drop_read_csv("my_first_drop/table_car.csv")
dropbox_table_car

Выход:

##   X gear mean_mpg mean_disp
## 1 1    3 16.10667  326.3000
## 2 2    4 24.53333  123.0167
## 3 3    5 21.38000  202.4800

Когда вы закончите использовать файл и захотите его удалить. Вам нужно прописать путь к файлу в функции drop_delete().

drop_delete('my_first_drop/table_car.csv')

Выход:

Экспорт в Dropbox

Также возможно удалить папку

drop_delete('my_first_drop')

Выход:

Экспорт в Dropbox

Экспорт данных из R: Справочник по функциям

Ниже перечислены все функции экспорта, использованные в этом руководстве:

Библиотека Цель Функция
Использование темпера с изогнутым основанием Экспорт csv запись.csv()
XLSX Экспортировать в Excel запись.xlsx()
убежище Экспортировать спсс write_sav()
убежище Экспортировать САС write_sas()
убежище Экспортировать данные write_dta()
Использование темпера с изогнутым основанием Экспорт объектов R save() / saveRDS()
Google Drive Загрузите Google Drive Drive_upload()
Google Drive Открыть в Google Drive диск_обзор()
Google Drive Получить идентификатор файла диск_get(as_id())
Google Drive Скачать с Google Drive drive_download()
Google Drive Удалить файл из Google Drive диск_rm()
рдроп2 Аутентификация drop_auth()
рдроп2 Создать папку drop_create()
рдроп2 Загрузить на Dropbox drop_upload()
рдроп2 Прочитать CSV из Dropbox drop_read_csv()
рдроп2 Удалить файл из Dropbox drop_delete()

Часто задаваемые вопросы (FAQ)

Функция saveRDS() сохраняет один объект, а readRDS() позволяет присвоить ему любое имя. Функция save() сохраняет несколько объектов, а load() восстанавливает их исходные имена, что может незаметно перезаписать переменные, уже находящиеся в вашей среде.

По умолчанию функция write.csv() записывает имена строк в первый столбец без имени. Передайте row.names = FALSE, чтобы это отключить, иначе при повторном импорте файла появится лишний столбец X.

Используйте writexl::write_xlsx() или openxlsx::write.xlsx(). Обе функции записывают файлы .xlsx на чистом R без каких-либо дополнительных действий. Java зависимость, которая позволяет избежать rJava Настройка, необходимая для работы пакета xlsx.

Используйте RDS или Parquet вместо CSV. Оба формата сохраняют типы столбцов и уровни факторов, поэтому обучающий набор данных загружается идентично. CSV незаметно преобразует типы и является распространенной причиной невоспроизводимых результатов моделирования.

Да. Искусственный интеллект может диагностировать ошибки доступа, неправильные рабочие каталоги и отсутствующие файлы. Java для пакета xlsx. Всегда подтверждайте место назначения с помощью функции getwd(), прежде чем доверять предложенному пути.

Подведем итог этой публикации следующим образом: