Як експортувати дані з R у CSV та Excel

⚡ Розумний підсумок

Експорт даних з R охоплює запис фрейму даних у CSV, Excel, SPSS, SAS, STATA та нативні формати 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() — кілька, точно зберігаючи рівні факторів та атрибути.
  • ☁️ Завантаження в хмару: googledrive та rdrop2 автентифікуються один раз за сеанс, а потім завантажують, вивантажують та видаляють файли безпосередньо з R.

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

Як експортувати дані з R

У цьому посібнику ми дізнаємося, як експортувати дані із середовища R у різні формати.

Щоб експортувати дані на жорсткий диск, потрібен шлях до файлу та розширення. Перш за все, шлях - це місце, де будуть зберігатися дані. У цьому посібнику ви побачите, як зберігати дані на:

  • Жорсткий диск
  • Google Drive
  • Dropbox

По-друге, R може записувати дані в багатьох форматах. У цьому посібнику розглянуто основні розширення файлів:

  • CSV
  • XLSX
  • RDS
  • ПАР
  • SPSS
  • STATA

Кожен експорт має однакову форму: один виклик функції, фрейм даних та шлях призначення.

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

Для початку ви можете зберегти дані прямо в робочу директорію. Наступний код друкує шлях вашого робочого каталогу:

directory <- getwd()
directory

вихід:

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

Якщо ви не вкажете повний шлях, кожен файл записується в цей робочий каталог. Значення за замовчуванням залежить від системи, зазвичай це домашня папка користувача на macOS і Linux, а також папка «Документи» на Windows, але getwd() завжди повідомляє поточне значення. Змініть його за допомогою setwd() або просто передайте повний шлях до функції write.

setwd("/Users/USERNAME/Downloads")

Створити кадр даних

Спочатку створіть невеликий фрейм даних: середнє значення миль на галон та витрата палива, згруповані за передачею з набору даних 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) Вам потрібно встановити java в R. Ми рекомендуємо вам інсталювати R і Rstudio з Anaconda. Anaconda керує залежностями між бібліотеками. У цьому сенсі Anaconda впорається з тонкощами rJava установка.

Перш за все, вам потрібно оновити conda, а потім встановити бібліотека. Ви можете скопіювати та вставити наступні два рядки коду в терміналі.

conda update conda
conda install -c r r-rjava

Далі відкрийте java в Rstudio

library(rJava)

Крок 3) Нарешті настав час встановити xlsx. Ще раз можна використовувати Конда зробити це:

conda install -c r r-xlsx

Як і користувачі Windows, ви можете зберігати дані за допомогою функції write.xlsx()

library(xlsx)

вихід:

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

Експорт даних із R до іншого програмного забезпечення

Експортувати дані в інше програмне забезпечення так само просто, як і імпортувати їх. Бібліотека «haven» забезпечує зручний спосіб експорту даних

  • spss
  • ПАР
  • були

Перш за все, імпортуйте бібліотеку. Якщо у вас немає «притулку», можете йти тут для встановлення.

library(haven)

файл SPSS

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

write_sav(df, "table_car.sav")

SAS-файл

Так само просто, як spss, ви можете експортувати в sas

write_sas(df, "table_car.sas7bdat")

STATA-файл

Нарешті, бібліотека haven дозволяє писати файл .dta.

write_dta(df, "table_car.dta")

Як експортувати дані у формати R Native

Якщо ви хочете зберегти об'єкт всередині 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")
Критерії зберегтиRDS() / зчитатиRDS() зберегти() / завантажити()
Об'єктів у файлі Рівно один Один або багато
Назва об'єкта при перезавантаженні Ти обираєш це Відновлено як збережено
Перезаписує середовище Немає Так, мовчки.
Звичайне розширення .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.

Бібліотека ще не доступна в Anaconda. Ви можете встановити його за допомогою наведеного нижче коду в консолі.

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. Бібліотека також недоступна в Anaconda. Ви можете встановити його через консоль

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

В DropBox

Експортувати в 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

У DropBox

Експортувати в 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: Довідник функцій

Кожна функція експорту, що використовується в цьому посібнику, перелічена нижче:

Library Мета функція
база Експорт CSV write.csv()
XLSX Експорт Excel write.xlsx()
притулок Експорт spss write_sav()
притулок Експорт sas write_sas()
притулок Експорт даних write_dta()
база Експорт об'єктів R зберегти() / зберегтиRDS()
Гугедріве Завантажити Google Drive drive_upload()
Гугедріве відкрити в Google Drive drive_browse()
Гугедріве Отримати ідентифікатор файлу drive_get(as_id())
Гугедріве Скачати з Google Drive drive_download()
Гугедріве Видалити файл із Google Drive drive_rm()
rdrop2 Authentication drop_auth()
rdrop2 Створіть папку drop_create()
rdrop2 Завантажити в Dropbox drop_upload()
rdrop2 Прочитати csv з Dropbox drop_read_csv()
rdrop2 Видалити файл із Dropbox drop_delete()

Поширені запитання

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(), перш ніж довіряти запропонованому шляху.

Підсумуйте цей пост за допомогою: