Kako izvesti podatke iz R-a u CSV i Excel

โšก Pametni saลพetak

Izvoz podataka iz R-a obuhvaฤ‡a pisanje podatkovnog okvira u CSV, Excel, SPSS, SAS, STATA i izvorne R formate, a zatim slanje iste datoteke u Google Drive or DropboxSvaki izvoz slijedi jedan obrazac: funkciju, okvir podataka i odrediลกnu putanju.

  • ๐Ÿ“ Prvo odrediลกte: getwd() prijavljuje radni direktorij i tamo se zapisuje bilo koji relativni naziv datoteke, osim ako nije naveden puni put.
  • ๐Ÿ“„ Izvoz CSV-a: write.csv(df, โ€œfile.csvโ€) je univerzalna opcija, a write.csv2() prebacuje se na razdjelnike toฤka-zarez.
  • ๐Ÿ“— Izvoz u Excel: write.xlsx() iz xlsx paketa zahtijeva ispravan Java instalacija na stroju.
  • ๐Ÿ”„ Statistiฤki softver: Paket haven zapisuje SPSS, SAS i STATA datoteke pomoฤ‡u write_sav(), write_sas() i write_dta().
  • ๐Ÿ’พ Izvorni formati: saveRDS() pohranjuje jedan objekt, a save() pohranjuje nekoliko njih, pri ฤemu oba toฤno ฤuvaju razine faktora i atribute.
  • โ˜๏ธ Prijenos u oblak: googledrive i rdrop2 se autentificiraju jednom po sesiji, a zatim prenose, preuzimaju i briลกu datoteke izravno iz R-a.

Izvoz podataka iz R CSV-a u Excel

Kako izvesti podatke iz R

U ovom vodiฤu nauฤit ฤ‡emo kako izvesti podatke iz R okruลพenja u razliฤite formate.

Za izvoz podataka na tvrdi disk potreban vam je put datoteke i ekstenzija. Prije svega, put je mjesto gdje ฤ‡e podaci biti pohranjeni. U ovom vodiฤu vidjet ฤ‡ete kako pohraniti podatke na:

  • Tvrdi disk
  • Google Drive
  • Dropbox

Drugo, R moลพe zapisivati โ€‹โ€‹podatke u mnogim formatima. Ovaj vodiฤ pokriva bitne ekstenzije datoteka:

  • csv
  • xlsx
  • RDS
  • SAS
  • SPSS
  • STATA

Svaki izvoz slijedi isti oblik: jedan poziv funkcije, okvir podataka i odrediลกni put.

Izvoz na tvrdi disk

Za poฤetak, podatke moลพete spremiti izravno u radni direktorij. Sljedeฤ‡i kod ispisuje putanju vaลกeg radnog direktorija:

directory <- getwd()
directory

Izlaz:

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

Osim ako ne navedete punu putanju, svaka se datoteka zapisuje u taj radni direktorij. Zadana vrijednost razlikuje se ovisno o sustavu, obiฤno je to poฤetna mapa korisnika na macOS i Linux i mapa Dokumenti na Windows, ali getwd() uvijek govori trenutnu vrijednost. Promijenite je pomoฤ‡u setwd() ili jednostavno proslijedite punu putanju funkciji write.

setwd("/Users/USERNAME/Downloads")

Stvorite podatkovni okvir

Prvo, izgradite mali okvir podataka: srednju vrijednost potroลกnje goriva i potroลกnje grupirane po stupnju prijenosa iz skupa podataka mtcars.

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

Izlaz:

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

Tablica se sastoji od tri retka i tri stupca. Moลพete stvoriti CSV datoteku s funkcijom write.csv u R.

Kako izvesti DataFrame u CSV datoteku u R

Osnovna sintaksa write.csv u R za izvoz DataFramea u CSV u 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

Primjer:

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

Code Objaลกnjenje

  • write.csv(df, โ€œtable_car.csvโ€): Stvorite CSV datoteku na tvrdom disku:
    • df: naziv podatkovnog okvira u okruลพenju
    • โ€œtable_car.csvโ€: Imenujte datoteku table_car i pohranite je kao csv

biljeลกkewrite.csv2() zapisuje istu datoteku koristeฤ‡i toฤku-zarez kao razdjelnik polja i zarez kao decimalni znak, ลกto je konvencija u veฤ‡em dijelu kontinentalne Europe.

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

biljeลกkeSamo u pedagoลกke svrhe, kreirali smo funkciju pod nazivom open_folder() za otvaranje mape direktorija. Samo trebate pokrenuti donji kod i vidjeti gdje je pohranjena csv datoteka. Trebali biste vidjeti datoteku pod nazivom 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)

Kako izvesti DataFrame u Excel datoteku u R-u

Izvoz u Excel je jednostavan Windows i malo zahtjevnije macOSOba koriste xlsx biblioteku, a razlika je samo u instalaciji, jer xlsx ovisi o Java. Java mora biti prisutan na stroju prije nego ลกto se paket uฤitava.

Windows Korisnici

On Windows, instalirajte biblioteku izravno pomoฤ‡u conda-e:

conda install -c r r-xlsx

Nakon ลกto je biblioteka instalirana, write.xlsx() stvara novu Excel radnu knjigu u radnom direktoriju:

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

Ako ste korisnik Mac OS-a, trebate slijediti ove korake:

  • Korak 1: Instalirajte najnoviju verziju Java
  • Korak 2: Instalirajte biblioteku rJava
  • Korak 3: Instalirajte biblioteku xlsx

Korak 1) Moลพete preuzeti Java od sluลพbenog Oracle stranice i instalirajte je.

Moลพete se vratiti na Rstudio i provjeriti koju verziju Java je instaliran.

system("java -version")

Bilo koji nedavni Java izdanje radi. Ako naredba ne prijavi niลกta, Java nije instaliran i xlsx paket se neฤ‡e moฤ‡i uฤitati.

Korak 2) Morate instalirati rjavu u R. Preporuฤamo vam da instalirate R i Rstudio s Anacondom. Anaconda upravlja ovisnostima izmeฤ‘u knjiลพnica. U tom smislu, Anaconda ฤ‡e se nositi sa zamrลกenoลกฤ‡u rJava montaลพa.

Prije svega, morate aลพurirati conda i zatim instalirati knjiลพnica. Moลพete kopirati i zalijepiti sljedeฤ‡a dva retka koda u terminal.

conda update conda
conda install -c r r-rjava

Zatim otvorite rjavu u Rstudio

library(rJava)

Korak 3) Konaฤno, vrijeme je da instalirate xlsx. Joลก jednom, moลพete koristiti konda uฤiniti to:

conda install -c r r-xlsx

Baลก kao i korisnici Windowsa, moลพete spremiti podatke s funkcijom write.xlsx()

library(xlsx)

Izlaz:

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

Izvoz podataka iz R-a u drugi softver

Izvoz podataka u razliฤiti softver jednostavan je kao i njihov uvoz. Knjiลพnica "utoฤiลกte" pruลพa prikladan naฤin za izvoz podataka

  • spss
  • sas
  • bio

Prije svega, uvezite biblioteku. Ako nemate โ€œutoฤiลกteโ€, moลพete iฤ‡i ovdje da biste ga instalirali.

library(haven)

SPSS datoteka

Ispod je kod za izvoz podataka u SPSS softver:

write_sav(df, "table_car.sav")

SAS datoteka

Jednostavno kao spss, moลพete izvoziti u sas

write_sas(df, "table_car.sas7bdat")

STATA datoteka

Konaฤno, biblioteka utoฤiลกta omoguฤ‡uje pisanje .dta datoteke.

write_dta(df, "table_car.dta")

Kako izvesti podatke u R izvorne formate

Ako ลพelite zadrลพati objekt unutar R-a umjesto da ga predate drugom programu, upotrijebite jedan od dva izvorna formata. save() zapisuje jedan ili viลกe imenovanih objekata u .RData datoteku:

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

Alternativa je saveRDS(), koja pohranjuje toฤno jedan objekt i omoguฤ‡uje ฤitatelju da odabere njegovo ime na povratku:

# 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")
Kriteriji spremanjeRDS() / ฤitanjeRDS() spremi() / uฤitaj()
Objekti po datoteci Toฤno jedan Jedan ili mnogo
Naziv objekta prilikom ponovnog ponovljenog prikaza Ti biraลก Vraฤ‡eno kao spremljeno
Prepisuje okruลพenje Ne Da, tiho
Uobiฤajeni nastavak .rds .RData

U skriptama preferirajte saveRDS() jer load() moลพe tiho prepisati postojeฤ‡i objekt istog imena. Oba formata ฤuvaju razine faktora, redoslijed i atribute netaknutima, ลกto CSV ne moลพe.

Gore stvorene datoteke moลพete provjeriti u trenutnom radnom direktoriju

Izvoz podataka iz R u STATA datoteku

Interakcija s uslugama u oblaku

Posljednje, ali ne i najmanje vaลพno, R opremljen je fantastiฤnim bibliotekama za interakciju s uslugama raฤunalstva u oblaku. Posljednji dio ovog vodiฤa bavi se izvozom/uvozom datoteka iz:

  • Google Drive
  • Dropbox

biljeลกkeOvaj dio tutorijala pretpostavlja da imate raฤun kod Google i Dropbox. Ako ne, moลพete ga brzo izraditi za โ€“ Google Drive: https://accounts.google.com/SignUp?hl=en - Dropbox: https://www.dropbox.com/h

Google Drive

Morate instalirati knjiลพnicu googledrive za pristup funkciji koja omoguฤ‡uje interakciju s Google Drive.

Knjiลพnica joลก nije dostupna u Anacondi. Moลพete ga instalirati pomoฤ‡u donjeg koda u konzoli.

install.packages("googledrive")

a vi otvorite knjiลพnicu.

library(googledrive)

Za korisnike koji ne koriste Condu, instaliranje biblioteke je jednostavno, moลพete koristiti install.packages('NAME OF PACKAGE') s nazivom paketa u navodnicima unutar zagrada. R ga instalira na prvu lokaciju koju vraฤ‡a .libPaths().

Prenesi na Google Drive

Za prijenos datoteke u Google pogon, morate koristiti funkciju drive_upload().

Svaki put kada ponovno pokrenete Rstudio, od vas ฤ‡e se traลพiti da dopustite pristup tidyverse-u Google Drive.

Osnovna sintaksa 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.

Nakon ลกto pokrenete kod, trebate potvrditi nekoliko pitanja

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

Izlaz:

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

U konzolu upisujete 1 za potvrdu pristupa

Google Drive

Zatim ฤ‡ete biti preusmjereni na Google API za dopuลกtanje pristupa. Kliknite Dopusti.

Google Drive

Kada je provjera autentiฤnosti dovrลกena, moลพete zatvoriti preglednik.

Google Drive

U Rstudiovoj konzoli moลพete vidjeti saลพetak izvrลกenog koraka. Google uspjeลกno prenesena datoteka koja se nalazi lokalno na Disku. Google dodijelio ID svakoj datoteci na disku.

Google Drive

Ovu datoteku moลพete vidjeti u Google Spreadsheet.

drive_browse("table_car")

Izlaz:

Bit ฤ‡ete preusmjereni na Google Spreadsheet

Google Drive

Uvoz iz Google Drive

Preuzimanje pomoฤ‡u ID-a datoteke je pouzdan put. Ako znate naziv datoteke, prvo dohvatite njezin ID:

biljeลกke: Ovisno o vaลกoj internetskoj vezi i veliฤini vaลกeg Diska, potrebno je vrijeme.

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

Google Drive

Pohranili ste ID u varijablu x. Funkcija drive_download() omoguฤ‡uje preuzimanje datoteke s Google Drive.

Osnovna sintaksa 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.

Konaฤno moลพete preuzeti datoteku:

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

Code Objaลกnjenje

  • drive_download(): Funkcija za preuzimanje datoteke s Google Drive
  • as_id(x): Koristite ID za pregledavanje datoteke Google Drive
  • overwrite = TRUE: Ako datoteka postoji, prebriลกi je, inaฤe je izvrลกenje zaustavljeno Da biste vidjeli naziv datoteke lokalno, moลพete koristiti:

Izlaz:

Google Drive

Datoteka je pohranjena u vaลกem radnom direktoriju. Ne zaboravite dodati ekstenziju datoteke prije otvaranja u R-u. Puno ime moลพete stvoriti funkcijom paste() (npr. 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

Izlaz:

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

Konaฤno, datoteku moลพete ukloniti iz Google voziti.

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

Izlaz:

Google Drive

Brisanje se obraฤ‘uje asinkrono od strane Google, pa ฤ‡e moลพda trebati trenutak da datoteka nestane.

Izvezi u Dropbox

R je u interakciji s Dropbox preko biblioteke rdrop2. Knjiลพnica nije dostupna ni u Anacondi. Moลพete ga instalirati preko konzole

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

Dajete privremeni pristup Dropbox s vaลกim vjerodajnicama. Nakon autentifikacije, R moลพe stvarati, uklanjati, prenositi i preuzimati datoteke u vaลกem Dropbox.

Prije svega, morate dati pristup svom raฤunu. Vjerodajnice se pohranjuju u predmemoriju tijekom cijele sesije.

drop_auth()

Bit ฤ‡ete preusmjereni na Dropbox za potvrdu autentifikacije.

Izvezi u Dropbox

Dobit ฤ‡ete stranicu za potvrdu. Moลพete ga zatvoriti i vratiti se na R

Izvezi u Dropbox

Moลพete stvoriti mapu pomoฤ‡u funkcije drop_create().

  • drop_create('my_first_drop'): Stvorite mapu u prvoj grani Dropbox
  • drop_create('First_branch/my_first_drop'): Stvorite mapu unutar postojeฤ‡e mape First_branch.
drop_create('my_first_drop')

Izlaz:

Izvezi u Dropbox

U DropuBox

Izvezi u Dropbox

Za uฤitavanje .csv datoteke u vaลก Dropbox, koristite funkciju drop_upload().

Osnovna sintaksa:

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

Izlaz:

Izvezi u Dropbox

Kod DropaBox

Izvezi u Dropbox

Moลพete proฤitati csv datoteku iz Dropbox s funkcijom drop_read_csv()

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

Izlaz:

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

Kada zavrลกite s koriลกtenjem datoteke i ลพelite je izbrisati. Morate napisati putanju datoteke u funkciji drop_delete()

drop_delete('my_first_drop/table_car.csv')

Izlaz:

Izvezi u Dropbox

Takoฤ‘er je moguฤ‡e izbrisati mapu

drop_delete('my_first_drop')

Izlaz:

Izvezi u Dropbox

Izvoz podataka iz R-a: Referenca funkcija

Svaka funkcija izvoza koriลกtena u ovom vodiฤu navedena je u nastavku:

Knjiลพnica Cilj funkcija
baza Izvezi csv pisati.csv()
xlsx Izvoz excela pisati.xlsx()
utoฤiลกte Izvoz spss write_sav()
utoฤiลกte Izvoz sas write_sas()
utoฤiลกte Izvoz stanja write_dta()
baza Izvoz R objekata spremi() / spremiRDS()
Google disk Postavi Google Drive pogon_upload()
Google disk Otvori u Google Drive drive_browse()
Google disk Dohvati ID datoteke pogon_dobi(kao_id())
Google disk Preuzimanje iz Google Drive pogon_preuzimanja()
Google disk Ukloni datoteku iz Google Drive pogon_rm()
rdop2 Ovjera drop_auth()
rdop2 Napravite mapu drop_create()
rdop2 Prenesi na Dropbox drop_upload()
rdop2 ฤŒitaj csv iz Dropbox ispusti_ฤitaj_csv()
rdop2 Izbriลกi datoteku iz Dropbox drop_delete()

Pitanja i odgovori

saveRDS() pohranjuje jedan objekt, a readRDS() vam omoguฤ‡uje da ga dodijelite bilo kojem imenu. save() pohranjuje nekoliko objekata, a load() vraฤ‡a njihova izvorna imena, ลกto moลพe tiho prepisati varijable koje se veฤ‡ nalaze u vaลกem okruลพenju.

Prema zadanim postavkama, write.csv() zapisuje nazive redaka kao neimenovani prvi stupac. Za potiskivanje row.names = FALSE, inaฤe ฤ‡e ponovni uvoz datoteke stvoriti zalutali X stupac.

Koristite writexl::write_xlsx() ili openxlsx::write.xlsx(). Oba programa zapisuju .xlsx datoteke u ฤistom R-u bez Java ovisnost, koja izbjegava rJava postavke koje zahtijeva xlsx paket.

Koristite RDS ili Parquet umjesto CSV-a. Oba formata ฤuvaju tipove stupaca i razine faktora, tako da se skup podataka za uฤenje ponovno uฤitava identiฤno. CSV tiho pretvara tipove i ฤest je izvor nereproducibilnih rezultata modela.

Da. AI asistenti mogu dijagnosticirati pogreลกke u dopuลกtenjima, pogreลกne radne direktorije i nedostajuฤ‡e Java za xlsx paket. Uvijek potvrdite odrediลกte pomoฤ‡u getwd() prije nego ลกto se povjerujete predloลพenom putu.

Saลพmite ovu objavu uz: