Jak exportovat data z R do CSV a Excelu

โšก Chytrรฉ shrnutรญ

Export dat z R zahrnuje zรกpis datovรฉho rรกmce do formรกtลฏ CSV, Excel, SPSS, SAS, STATA a nativnรญch formรกtลฏ R a nรกslednรฉ odeslรกnรญ stejnรฉho souboru do... Google Drive or DropboxKaลพdรฝ export se ล™รญdรญ jednรญm vzorem: funkcรญ, datovรฝm rรกmcem a cรญlovou cestou.

  • ๐Ÿ“ Cรญl prvnรญ: Funkce getwd() hlรกsรญ pracovnรญ adresรกล™ a zapรญลกe se tam jakรฝkoli relativnรญ nรกzev souboru, pokud nenรญ zadรกna รบplnรก cesta.
  • ๐Ÿ“„ Export do CSV: write.csv(df, โ€žfile.csvโ€œ) je univerzรกlnรญ volba a write.csv2() pล™epรญnรก na stล™ednรญky jako oddฤ›lovaฤe.
  • ๐Ÿ“— Export do Excelu: write.xlsx() z balรญฤku xlsx vyลพaduje funkฤnรญ Java instalace na stroji.
  • ๐Ÿ”„ Statistickรฝ software: Balรญฤek haven zapisuje soubory SPSS, SAS a STATA pomocรญ funkcรญ write_sav(), write_sas() a write_dta().
  • ๐Ÿ’พ Nativnรญ formรกty: Funkce saveRDS() uklรกdรก jeden objekt a funkce save() jich uklรกdรก nฤ›kolik, pล™iฤemลพ oba objekty pล™esnฤ› zachovรกvajรญ รบrovnฤ› faktorลฏ a atributy.
  • โ˜๏ธ Nahrรกvรกnรญ do cloudu: GoogleDrive a rdrop2 se ovฤ›ล™ujรญ jednou za relaci a potรฉ nahrรกvajรญ, stahujรญ a maลพou soubory pล™รญmo z R.

Export dat z R CSV do Excelu

Jak exportovat data z R

V tomto tutoriรกlu se nauฤรญme exportovat data z prostล™edรญ R do rลฏznรฝch formรกtลฏ.

Chcete-li exportovat data na pevnรฝ disk, potล™ebujete cestu k souboru a pล™รญponu. Za prvรฉ, cesta je mรญsto, kde budou data uloลพena. V tomto tutoriรกlu uvidรญte, jak uklรกdat data na:

  • Pevnรฝ disk
  • Google Drive
  • Dropbox

Za druhรฉ, R dokรกลพe data zapisovat v mnoha formรกtech. Tento tutoriรกl se zabรฝvรก zรกkladnรญmi pล™รญponami souborลฏ:

  • csv
  • XLSX
  • RDS
  • SAS
  • SPSS
  • STATISTA

Kaลพdรฝ export mรก stejnรฝ tvar: jedno volรกnรญ funkce, datovรฝ rรกmec a cรญlovรก cesta.

Export na pevnรฝ disk

Pro zaฤรกtek mลฏลพete data uloลพit pล™รญmo do pracovnรญho adresรกล™e. Nรกsledujรญcรญ kรณd vypรญลกe cestu k vaลกemu pracovnรญmu adresรกล™i:

directory <- getwd()
directory

Vรฝstup:

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

Pokud nezadรกte รบplnou cestu, kaลพdรฝ soubor se zapรญลกe do danรฉho pracovnรญho adresรกล™e. Vรฝchozรญ nastavenรญ se liลกรญ v zรกvislosti na systรฉmu, obvykle se jednรก o domovskou sloลพku uลพivatele na macOS a Linux a sloลพka Dokumenty na Windows, ale getwd() vรกm vลพdycky ukรกลพe aktuรกlnรญ hodnotu. Zmฤ›ลˆte ji pomocรญ setwd() nebo jednoduลกe pล™edejte funkci write รบplnou cestu.

setwd("/Users/USERNAME/Downloads")

Vytvoล™te datovรฝ rรกmec

Nejprve si z datovรฉ sady mtcars vytvoล™te malรฝ datovรฝ rรกmec: prลฏmฤ›r spotล™eby paliva (mpg) a spotล™eby paliva (disp) seskupenรฉ podle pล™evodovรฉho stupnฤ›.

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

Vรฝstup:

## # 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

Tabulka obsahuje tล™i ล™รกdky a tล™i sloupce. Soubor CSV mลฏลพete vytvoล™it pomocรญ funkce write.csv v R.

Jak exportovat DataFrame do souboru CSV v R

Zรกkladnรญ syntaxe write.csv v R pro export DataFrame do CSV v 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

Pล™รญklad:

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

Code Vysvฤ›tlenรญ

  • write.csv(df, โ€œtable_car.csvโ€): Vytvoล™te soubor CSV na pevnรฉm disku:
    • df: nรกzev datovรฉho rรกmce v prostล™edรญ
    • โ€žtable_car.csvโ€œ: Pojmenujte soubor table_car a uloลพte jej jako csv

HodnocenรญFunkce write.csv2() zapรญลกe stejnรฝ soubor s pouลพitรญm stล™ednรญku jako oddฤ›lovaฤe polรญ a ฤรกrky jako desetinnรฉ ฤรกrky, coลพ je konvence ve velkรฉ ฤรกsti kontinentรกlnรญ Evropy.

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

HodnocenรญPouze pro pedagogickรฉ รบฤely jsme vytvoล™ili funkci s nรกzvem open_folder(), kterรก otevล™e sloลพku adresรกล™e. Staฤรญ spustit nรญลพe uvedenรฝ kรณd a podรญvat se, kde je soubor CSV uloลพen. Mฤ›li byste vidฤ›t soubor s nรกzvem 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)

Jak exportovat datovรฝ rรกmec do souboru aplikace Excel v jazyce R

Export do Excelu je jednoduchรฝ Windows a o nฤ›co sloลพitฤ›jลกรญ macOSOba pouลพรญvajรญ knihovnu xlsx a rozdรญl je pouze v instalaci, protoลพe xlsx zรกvisรญ na Java. Java musรญ bรฝt pล™รญtomen ve stroji pล™ed naฤtenรญm balรญku.

Windows uลพivatelรฉ

On Windows, nainstalujte knihovnu pล™รญmo pomocรญ conda:

conda install -c r r-xlsx

Jakmile je knihovna nainstalovรกna, metoda write.xlsx() vytvoล™รญ v pracovnรญm adresรกล™i novรฝ seลกit aplikace Excel:

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

Pokud jste uลพivatelem Mac OS, musรญte postupovat takto:

  • Krok 1: Nainstalujte nejnovฤ›jลกรญ verzi Java
  • Krok 2: Nainstalujte knihovnu rJava
  • Krok 3: Nainstalujte knihovnu xlsx

Krok 1) Mohl bys stรกhnout Java od รบล™ednรญka Oracle web a nainstalujte jej.

Mลฏลพete se vrรกtit do Rstudia a zkontrolovat, kterou verzi Java je nainstalovรกn.

system("java -version")

Jakรฉkoli nedรกvnรฉ Java uvolnฤ›nรญ funguje. Pokud pล™รญkaz nic nehlรกsรญ, Java nenรญ nainstalovรกn a balรญฤek xlsx se nepodaล™รญ naฤรญst.

Krok 2) Musรญte nainstalovat rjavu v R. Doporuฤujeme vรกm nainstalovat R a Rstudio s Anacondou. Anaconda spravuje zรกvislosti mezi knihovnami. V tomto smyslu Anaconda zvlรกdne sloลพitosti z rJava instalace.

Nejprve musรญte aktualizovat conda a potรฉ nainstalovat knihovna. Dalลกรญ dva ล™รกdky kรณdu mลฏลพete zkopรญrovat a vloลพit do terminรกlu.

conda update conda
conda install -c r r-rjava

Dรกle otevล™ete rjavu v Rstudiu

library(rJava)

Krok 3) Koneฤnฤ› je ฤas nainstalovat xlsx. Opฤ›t mลฏลพete pouลพรญt Conda udฤ›lat to:

conda install -c r r-xlsx

Stejnฤ› jako uลพivatelรฉ systรฉmu Windows mลฏลพete uklรกdat data pomocรญ funkce write.xlsx()

library(xlsx)

Vรฝstup:

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

Export dat z R do jinรฉho softwaru

Export dat do jinรฉho softwaru je stejnฤ› jednoduchรฝ jako jejich import. Knihovna โ€žรบtoฤiลกtฤ›โ€œ poskytuje pohodlnรฝ zpลฏsob exportu dat do

  • spss
  • sas
  • stata

Nejprve naimportujte knihovnu. Pokud nemรกte โ€žรบtoฤiลกtฤ›โ€œ, mลฏลพete jรญt zde nainstalovat.

library(haven)

soubor SPSS

Nรญลพe je uveden kรณd pro export dat do softwaru SPSS:

write_sav(df, "table_car.sav")

Soubor SAS

Stejnฤ› jednoduลกe jako spss mลฏลพete exportovat do sas

write_sas(df, "table_car.sas7bdat")

Soubor STATA

Knihovna Haven koneฤnฤ› umoลพลˆuje zรกpis souboru .dta.

write_dta(df, "table_car.dta")

Jak exportovat data do nativnรญch formรกtลฏ R

Pokud chcete objekt ponechat uvnitล™ R, a ne ho pล™edat jinรฉmu programu, pouลพijte jeden ze dvou nativnรญch formรกtลฏ. Funkce save() zapรญลกe jeden nebo vรญce pojmenovanรฝch objektลฏ do souboru .RData:

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

Alternativou je saveRDS(), kterรก uklรกdรก pล™esnฤ› jeden objekt a umoลพลˆuje ฤteฤce zvolit si jeho nรกzev pล™i cestฤ› zpฤ›t:

# 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")
Kritรฉria uloลพitRDS() / naฤรญstRDS() uloลพit() / naฤรญst()
Objekty v souboru Pล™esnฤ› jeden Jeden nebo mnoho
Nรกzev objektu pล™i opฤ›tovnรฉm naฤtenรญ Vy si to vyberete Obnoveno jako uloลพenรฉ
Pล™epรญลกe prostล™edรญ Ne Ano, tiลกe
Obvyklรฉ prodlouลพenรญ .rds .RData

Ve skriptech preferujte funkci saveRDS(), protoลพe funkce load() mลฏลพe tiลกe pล™epsat existujรญcรญ objekt se stejnรฝm nรกzvem. Oba formรกty zachovรกvajรญ รบrovnฤ› faktorลฏ, ล™azenรญ a atributy beze zmฤ›ny, coลพ CSV nedokรกลพe.

Soubory vytvoล™enรฉ vรฝลกe mลฏลพete zkontrolovat v aktuรกlnรญm pracovnรญm adresรกล™i

Export dat z R do souboru STATA

Interakce s cloudovรฝmi sluลพbami

V neposlednรญ ล™adฤ›, R je vybaven fantastickรฝmi knihovnami pro interakci se sluลพbami cloud computingu. Poslednรญ ฤรกst tohoto tutoriรกlu se zabรฝvรก exportem/importem souborลฏ z:

  • Google Drive
  • Dropbox

HodnocenรญTato ฤรกst tutoriรกlu pล™edpoklรกdรก, ลพe mรกte รบฤet u Google a Dropbox. Pokud ne, mลฏลพete jej rychle vytvoล™it pro โ€“ Google Drive: https://accounts.google.com/SignUp?hl=en - Dropbox: https://www.dropbox.com/h

Google Drive

Abyste zรญskali pล™รญstup k funkci umoลพลˆujรญcรญ interakci, musรญte si nainstalovat knihovnu googledrive Google Drive.

Knihovna zatรญm nenรญ v Anacondฤ› k dispozici. Mลฏลพete jej nainstalovat pomocรญ kรณdu nรญลพe v konzole.

install.packages("googledrive")

a otevล™ete knihovnu.

library(googledrive)

Pro uลพivatele, kteล™รญ nepouลพรญvajรญ Condu, je instalace knihovny snadnรก, mลฏลพete pouลพรญt install.packages('NรZEV BALรฤŒKU') s nรกzvem balรญฤku v uvozovkรกch uvnitล™ zรกvorek. R jej nainstaluje do prvnรญho umรญstฤ›nรญ vrรกcenรฉho funkcรญ .libPaths().

Nahrรกt do Google Drive

Nahrรกnรญ souboru do Google disk, musรญte pouลพรญt funkci drive_upload().

Pokaลพdรฉ, kdyลพ restartujete Rstudio, budete vyzvรกni k povolenรญ pล™รญstupu k tidyverse Google Drive.

Zรกkladnรญ syntaxe drive_upload() je

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.

Po spuลกtฤ›nรญ kรณdu musรญte potvrdit nฤ›kolik otรกzek

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

Vรฝstup:

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

Zadรกnรญm 1 do konzoly potvrฤte pล™รญstup

Google Drive

Potรฉ budete pล™esmฤ›rovรกni na Google API pro povolenรญ pล™รญstupu. Kliknฤ›te na Povolit.

Google Drive

Po dokonฤenรญ ovฤ›ล™ovรกnรญ mลฏลพete prohlรญลพeฤ ukonฤit.

Google Drive

V konzoli Rstudia si mลฏลพete prohlรฉdnout shrnutรญ provedenรฉho kroku. Google Soubor umรญstฤ›nรฝ lokรกlnฤ› na disku byl รบspฤ›ลกnฤ› nahrรกn. Google kaลพdรฉmu souboru na disku pล™iล™adil ID.

Google Drive

Tento soubor mลฏลพete vidฤ›t v Google Spreadsheet.

drive_browse("table_car")

Vรฝstup:

Budete pล™esmฤ›rovรกni na Google Spreadsheet

Google Drive

Importovat z Google Drive

Stahovรกnรญ podle ID souboru je spolehlivรก cesta. Pokud znรกte nรกzev souboru, nejprve zjistฤ›te jeho ID:

Hodnocenรญ: V zรกvislosti na vaลกem internetovรฉm pล™ipojenรญ a velikosti vaลกeho Disku to chvรญli trvรก.

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

Google Drive

ID jste uloลพili do promฤ›nnรฉ x. Funkce drive_download() umoลพลˆuje stahovรกnรญ souboru z Google Drive.

Zรกkladnรญ syntaxe je:

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.

Koneฤnฤ› si mลฏลพete stรกhnout soubor:

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

Code Vysvฤ›tlenรญ

  • drive_download(): Funkce pro staลพenรญ souboru Google Drive
  • as_id(x): Pouลพijte ID k prochรกzenรญ souboru Google Drive
  • overwrite = TRUE: Pokud soubor existuje, pล™epiลกte jej, jinak se provรกdฤ›nรญ zastavรญ Chcete-li zobrazit nรกzev souboru lokรกlnฤ›, mลฏลพete pouลพรญt:

Vรฝstup:

Google Drive

Soubor je uloลพen ve vaลกem pracovnรญm adresรกล™i. Pล™ed otevล™enรญm v R nezapomeลˆte pล™idat pล™รญponu souboru. Celรฝ nรกzev mลฏลพete vytvoล™it pomocรญ funkce paste() (napล™. 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

Vรฝstup:

##   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

Nakonec mลฏลพete soubor z vaลกeho Google ล™รญdit.

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

Vรฝstup:

Google Drive

Mazรกnรญ je zpracovรกvรกno asynchronnฤ› pomocรญ Google, takลพe zmizenรญ souboru mลฏลพe chvรญli trvat.

Exportovat do Dropbox

R interaguje s Dropbox prostล™ednictvรญm knihovny rdrop2. Knihovna nenรญ k dispozici ani v Anacondฤ›. Mลฏลพete jej nainstalovat pล™es konzolu

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

Udฤ›lujete doฤasnรฝ pล™รญstup k Dropbox s vaลกimi pล™ihlaลกovacรญmi รบdaji. Po ovฤ›ล™enรญ mลฏลพe R vytvรกล™et, odstraลˆovat, nahrรกvat a stahovat soubory ve vaลกem Dropbox.

Nejprve musรญte udฤ›lit pล™รญstup ke svรฉmu รบฤtu. Povฤ›ล™enรญ se uklรกdajรญ do mezipamฤ›ti bฤ›hem celรฉ relace.

drop_auth()

Budete pล™esmฤ›rovรกni na Dropbox pro potvrzenรญ ovฤ›ล™enรญ.

Exportovat do Dropbox

Zobrazรญ se potvrzovacรญ strรกnka. Mลฏลพete jej zavล™รญt a vrรกtit se do R

Exportovat do Dropbox

Sloลพku mลฏลพete vytvoล™it pomocรญ funkce drop_create().

  • drop_create('my_first_drop'): Vytvoล™te sloลพku v prvnรญ vฤ›tvi Dropbox
  • drop_create('First_branch/my_first_drop'): Vytvoล™te sloลพku v existujรญcรญ sloลพce First_branch.
drop_create('my_first_drop')

Vรฝstup:

Exportovat do Dropbox

In DropBox

Exportovat do Dropbox

Chcete-li nahrรกt soubor .csv do svรฉho Dropbox, pouลพijte funkci drop_upload().

Zรกkladnรญ syntaxe:

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")

Vรฝstup:

Exportovat do Dropbox

U DropBox

Exportovat do Dropbox

Mลฏลพete ฤรญst soubor csv z Dropbox pomocรญ funkce drop_read_csv()

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

Vรฝstup:

##   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

Kdyลพ skonฤรญte s pouลพรญvรกnรญm souboru a chcete jej smazat. Musรญte napsat cestu k souboru ve funkci drop_delete()

drop_delete('my_first_drop/table_car.csv')

Vรฝstup:

Exportovat do Dropbox

Je takรฉ moลพnรฉ smazat sloลพku

drop_delete('my_first_drop')

Vรฝstup:

Exportovat do Dropbox

Export dat z R: Referenฤnรญ pล™รญruฤka funkcรญ

Vลกechny exportnรญ funkce pouลพitรฉ v tomto tutoriรกlu jsou uvedeny nรญลพe:

Knihovna Objektivnรญ funkce
zรกkladna Export csv write.csv()
XLSX Exportovat excel write.xlsx()
รบtoฤiลกtฤ› Export spss write_sav()
รบtoฤiลกtฤ› Export sas write_sas()
รบtoฤiลกtฤ› Exportovat statistiky write_dta()
zรกkladna Export objektลฏ R uloลพit() / uloลพitRDS()
googledrive Nahrรกt Google Drive drive_upload()
googledrive Otevล™รญt v Google Drive drive_browse()
googledrive Naฤรญst ID souboru drive_get(as_id())
googledrive Stรกhnout z Google Drive drive_download()
googledrive Odebrat soubor z Google Drive drive_rm()
rdrop2 Ovฤ›ล™ovรกnรญ drop_auth()
rdrop2 Vytvoล™te sloลพku drop_create()
rdrop2 Nahrรกt do Dropbox drop_upload()
rdrop2 Pล™eฤรญst csv z Dropbox drop_read_csv()
rdrop2 Smazat soubor z Dropbox drop_delete()

Nejฤastฤ›jลกรญ dotazy

Funkce saveRDS() uklรกdรก jeden objekt a funkce readRDS() umoลพลˆuje pล™iล™adit mu libovolnรฝ nรกzev. Funkce save() uklรกdรก nฤ›kolik objektลฏ a funkce load() obnovuje jejich pลฏvodnรญ nรกzvy, ฤรญmลพ mลฏลพe tiลกe pล™epsat promฤ›nnรฉ, kterรฉ se jiลพ ve vaลกem prostล™edรญ nachรกzejรญ.

Ve vรฝchozรญm nastavenรญ funkce write.csv() zapisuje nรกzvy ล™รกdkลฏ jako nepojmenovanรฝ prvnรญ sloupec. Pro potlaฤenรญ zadejte row.names = FALSE, jinak opฤ›tovnรฝ import souboru vytvoล™รญ ztracenรฝ sloupec X.

Pouลพijte writexl::write_xlsx() nebo openxlsx::write.xlsx(). Oba zapisujรญ soubory .xlsx v ฤistรฉm R bez Java zรกvislost, kterรก se vyhรฝbรก rJava nastavenรญ, kterรฉ balรญฤek xlsx vyลพaduje.

Pouลพijte radฤ›ji RDS nebo Parquet neลพ CSV. Oba formรกty zachovรกvajรญ typy sloupcลฏ a รบrovnฤ› faktorลฏ, takลพe se trรฉnovacรญ datovรก sada znovu naฤรญtรก identicky. CSV tiลกe pล™evรกdรญ typy a je bฤ›ลพnรฝm zdrojem nereprodukovatelnรฝch vรฝsledkลฏ modelu.

Ano. Asistenti s umฤ›lou inteligencรญ dokรกลพรญ diagnostikovat chyby oprรกvnฤ›nรญ, nesprรกvnรฉ funkฤnรญ adresรกล™e a chybฤ›jรญcรญ Java pro balรญฤek xlsx. Pล™ed dลฏvฤ›ล™ovรกnรญm navrhovanรฉ cestฤ› vลพdy ovฤ›ล™te cรญl pomocรญ funkce getwd().

Shrลˆte tento pล™รญspฤ›vek takto: