Kuinka viedä tietoja R:stä CSV- ja Excel-tiedostoihin

⚡ Älykäs yhteenveto

Tiedon vienti R:stä kattaa datakehyksen kirjoittamisen CSV-, Excel-, SPSS-, SAS-, STATA- ja natiiveihin R-muotoihin ja saman tiedoston lähettämisen sitten Google Drive or DropboxJokainen vienti noudattaa yhtä kaavaa: funktio, datakehys ja kohdepolku.

  • 📁 Kohde ensin: getwd() raportoi työhakemiston, ja kaikki suhteelliset tiedostonimet kirjoitetaan sinne, ellei koko polkua anneta.
  • 📄 CSV-vienti: write.csv(df, “file.csv”) on yleiskäyttöinen vaihtoehto, ja write.csv2() vaihtaa puolipisteiden erottimiin.
  • 📗 Excel-vienti: xlsx-paketin write.xlsx() vaatii toimivan Java asennus koneeseen.
  • 🔄 Tilastoohjelmisto: haven-paketti kirjoittaa SPSS-, SAS- ja STATA-tiedostoja write_sav()-, write_sas()- ja write_dta()-funktioilla.
  • 💾 Natiivimuodot: saveRDS() tallentaa yhden objektin ja save() useita, molemmat säilyttäen tekijätasot ja attribuutit tarkasti.
  • ☁️ Pilvipalveluun lataaminen: GoogleDrive ja rdrop2 todentuvat kerran istuntoa kohden, ja sitten ne lataavat, lataavat ja poistavat tiedostoja suoraan R:stä.

Vie tiedot R CSV Excelistä

Kuinka viedä tietoja R:stä

Tässä opetusohjelmassa opimme viemään tietoja R-ympäristöstä eri muotoihin.

Jotta voit viedä tietoja kiintolevylle, tarvitset tiedostopolun ja tunnisteen. Ensinnäkin polku on paikka, johon tiedot tallennetaan. Tässä opetusohjelmassa näet kuinka tallennat tietoja:

  • Kiintolevy
  • Google Drive
  • Dropbox

Toiseksi, R voi kirjoittaa tiedot monissa eri muodoissa. Tämä tutoriaali käsittelee tärkeimmät tiedostopäätteet:

  • csv
  • XLSX
  • RDS
  • SAS
  • SPSS
  • TILAT

Jokainen vienti noudattaa samaa muotoa: yksi funktiokutsu, datakehys ja kohdepolku.

Vie kovalevylle

Aluksi voit tallentaa tiedot suoraan työhakemistoon. Seuraava koodi tulostaa työhakemistosi polun:

directory <- getwd()
directory

lähtö:

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

Ellet anna koko polkua, jokainen tiedosto kirjoitetaan kyseiseen työhakemistoon. Oletusarvo vaihtelee järjestelmän mukaan, tyypillisesti se on käyttäjän kotikansio macOS ja Linux ja Documents-kansio Windows, mutta getwd() kertoo aina nykyisen arvon. Voit muuttaa sitä setwd():llä tai antaa yksinkertaisesti koko polun kirjoitusfunktiolle.

setwd("/Users/USERNAME/Downloads")

Luo datakehys

Luo ensin pieni datakehys: MTCARS-datajoukosta vaihteittain ryhmitelty mpg:n ja disp:n keskiarvo.

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

lähtö:

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

Taulukko sisältää kolme riviä ja kolme saraketta. Voit luoda CSV-tiedoston funktiolla write.csv R:ssä.

DataFramen vieminen CSV-tiedostoon R

Write.csv:n perussyntaksi R:ssä DataFramen viemiseksi CSV:hen R:ssä:

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

Esimerkiksi:

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

Code Selitys

  • write.csv(df, "table_car.csv"): Luo CSV-tiedosto kiintolevylle:
    • df: tietokehyksen nimi ympäristössä
    • "table_car.csv": Nimeä tiedosto table_car ja tallenna se csv-muodossa

Huomautuksia: write.csv2() kirjoittaa saman tiedoston käyttäen puolipistettä kenttäerottimena ja pilkkua desimaalierottimena, mikä on käytäntö suuressa osassa Manner-Eurooppaa.

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

HuomautuksiaPedagogisiin tarkoituksiin loimme funktion nimeltä open_folder() avaamaan hakemistokansion puolestasi. Sinun tarvitsee vain suorittaa alla oleva koodi ja tarkistaa, mihin csv-tiedosto on tallennettu. Sinun pitäisi nähdä tiedosto nimeltä 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)

DataFramen vieminen Excel-tiedostoon R:ssä

Vienti Exceliin on helppoa Windows ja hieman hankalampi macOSMolemmat käyttävät xlsx-kirjastoa, ja ero on vain asennuksessa, koska xlsx on riippuvainen Java. Java on oltava koneella ennen paketin lastaamista.

Windows Käyttäjät

On Windows, asenna kirjasto suoraan condalla:

conda install -c r r-xlsx

Kun kirjasto on asennettu, write.xlsx() luo uuden Excel-työkirjan työhakemistoon:

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

Jos olet Mac OS -käyttäjä, sinun on noudatettava näitä ohjeita:

  • Vaihe 1: Asenna uusin versio Java
  • Vaihe 2: Asenna kirjasto rJava
  • Vaihe 3: Asenna kirjasto xlsx

Vaihe 1) Voisit ladata Java viralliselta Oracle sivusto ja asenna se.

Voit palata Rstudioon ja tarkistaa, mikä versio Java on asennettu.

system("java -version")

Mikä tahansa viimeaikainen Java julkaisu toimii. Jos komento ei ilmoita mitään, Java ei ole asennettu ja xlsx-paketin lataaminen epäonnistuu.

Vaihe 2) Sinun on asennettava rjava R:hen. Suosittelemme, että asennat R:n ja Rstudion Anacondan kanssa. Anaconda hallitsee kirjastojen välisiä riippuvuuksia. Tässä mielessä Anaconda käsittelee r:n hienoudetJava asennus.

Ensinnäkin sinun on päivitettävä conda ja asennettava sitten kirjasto. Voit kopioida ja liittää kaksi seuraavaa koodiriviä terminaaliin.

conda update conda
conda install -c r r-rjava

Avaa seuraavaksi rjava Rstudiossa

library(rJava)

Vaihe 3) Lopuksi on aika asentaa xlsx. Jälleen kerran voit käyttää Conda tehdä se:

conda install -c r r-xlsx

Aivan kuten Windows-käyttäjät, voit tallentaa tietoja funktiolla write.xlsx()

library(xlsx)

lähtö:

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

Tietojen vienti R:stä eri ohjelmistoihin

Tietojen vieminen eri ohjelmistoihin on yhtä helppoa kuin niiden tuonti. Kirjaston "satama" tarjoaa kätevän tavan viedä tietoja

  • SPSS
  • sas
  • ollut

Ensinnäkin tuo kirjasto. Jos sinulla ei ole "satamaa", voit mennä täältä asentaa se.

library(haven)

SPSS-tiedosto

Alla on koodi tietojen viemiseksi SPSS-ohjelmistoon:

write_sav(df, "table_car.sav")

SAS-tiedosto

Yhtä yksinkertaista kuin spss, voit viedä sasiin

write_sas(df, "table_car.sas7bdat")

STATA-tiedosto

Lopuksi turvasatamakirjasto mahdollistaa .dta-tiedoston kirjoittamisen.

write_dta(df, "table_car.dta")

Tietojen vieminen R:n natiivimuotoihin

Jos haluat pitää objektin R:n sisällä sen sijaan, että luovuttaisit sen toiselle ohjelmalle, käytä jompaakumpaa kahdesta natiivista tiedostomuodosta. save() kirjoittaa yhden tai useamman nimetyn objektin .RData-tiedostoon:

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

Vaihtoehto on saveRDS(), joka tallentaa täsmälleen yhden objektin ja antaa lukijan valita sen nimen paluumatkalla:

# 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")
Kriteeri tallennaRDS() / lueRDS() tallenna() / lataa()
Objekteja tiedostoa kohden Tasan yksi Yksi tai useampi
Objektin nimi latauksen yhteydessä Sinä valitset sen Palautettu tallennetuksi
Ylikirjoittaa ympäristön Ei Kyllä, hiljaa
Tavallinen laajennus .rds-tiedosto .RData

Suosi saveRDS()-funktiota skripteissä, koska load() voi hiljaisesti korvata samannimisen olemassa olevan objektin. Molemmat muodot säilyttävät tekijätasot, järjestyksen ja attribuutit ennallaan, mitä CSV ei voi tehdä.

Voit tarkistaa yllä luodut tiedostot nykyisestä työhakemistosta

Vie tiedot R:stä STATA-tiedostoon

Ole vuorovaikutuksessa pilvipalvelujen kanssa

Viimeisenä mutta ei vähäisimpänä, R on varustettu upeilla kirjastoilla vuorovaikutuksessa pilvipalveluiden kanssa. Tämän opetusohjelman viimeinen osa käsittelee tiedostojen vientiä/tuontia:

  • Google Drive
  • Dropbox

HuomautuksiaTässä opetusohjelman osassa oletetaan, että sinulla on tili Google ja Dropbox. Jos ei, voit luoda sellaisen nopeasti - Google Drive: https://accounts.google.com/SignUp?hl=en - Dropbox: https://www.dropbox.com/h

Google Drive

Sinun on asennettava kirjasto googledrive, jotta voit käyttää toimintoa, joka mahdollistaa vuorovaikutuksen Google Drive.

Kirjasto ei ole vielä saatavilla Anacondassa. Voit asentaa sen konsoliin alla olevalla koodilla.

install.packages("googledrive")

ja avaat kirjaston.

library(googledrive)

Muille kuin Conda-käyttäjille kirjaston asentaminen on helppoa. Voit käyttää install.packages('PAKETIN NIMI') -funktiota ja kirjoittaa paketin nimen lainausmerkkeihin sulkeiden sisään. R asentaa sen .libPaths()-funktion palauttamaan ensimmäiseen sijaintiin.

Lataa Google Drive

Tiedoston lataaminen kohteeseen Google asemaan, sinun on käytettävä funktiota drive_upload().

Joka kerta kun käynnistät Rstudion uudelleen, sinua pyydetään sallimaan pääsy tidyverselle Google Drive.

Aseman drive_upload() perussyntaksi on

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.

Kun olet käynnistänyt koodin, sinun on vahvistettava useita kysymyksiä

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

lähtö:

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

Vahvista pääsy kirjoittamalla 1 konsoliin

Google Drive

Sitten sinut ohjataan osoitteeseen Google API salliaksesi pääsyn. Napsauta Salli.

Google Drive

Kun todennus on valmis, voit sulkea selaimen.

Google Drive

Rstudion konsolissa näet suoritetun vaiheen yhteenvedon. Google Tiedosto ladattiin onnistuneesti paikallisesti asemaan. Google on antanut tunnuksen jokaiselle asemassa olevalle tiedostolle.

Google Drive

Voit nähdä tämän tiedoston Google Spreadsheet.

drive_browse("table_car")

lähtö:

Sinut ohjataan uudelleen Google Spreadsheet

Google Drive

Tuo osoitteesta Google Drive

Tiedoston ID:n perusteella lataaminen on luotettava tapa. Jos tiedät tiedostonimen, hae ensin sen ID:

Huomautuksia: Internet-yhteytesi ja Drivesi koosta riippuen se vie aikaa.

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

Google Drive

Tallensit tunnuksen muuttujaan x. Funktio drive_download() mahdollistaa tiedoston lataamisen kohteesta Google Drive.

Perussyntaksi on:

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.

Voit vihdoin ladata tiedoston:

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

Code Selitys

  • drive_download(): Toiminto, josta tiedosto ladataan Google Drive
  • as_id(x): Käytä tunnusta selataksesi tiedostoa Google Drive
  • overwrite = TOSI: Jos tiedosto on olemassa, korvaa se, muuten suoritus keskeytyy Nähdäksesi tiedoston nimen paikallisesti, voit käyttää:

lähtö:

Google Drive

Tiedosto tallennetaan työhakemistoosi. Muista lisätä tiedostopääte ennen sen avaamista R:ssä. Voit luoda koko nimen paste()-funktiolla (esim. 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

lähtö:

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

Lopuksi voit poistaa tiedoston laitteestasi Google ajaa.

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

lähtö:

Google Drive

Poisto käsitellään asynkronisesti Google, joten tiedoston katoaminen voi kestää hetken.

Vie osoitteeseen Dropbox

R on vuorovaikutuksessa Dropbox rdrop2-kirjaston kautta. Kirjasto ei ole saatavilla myöskään Anacondassa. Voit asentaa sen konsolin kautta

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

Myönnät tilapäisen käyttöoikeuden Dropbox tunnistetiedoillasi. Todennuksen jälkeen R voi luoda, poistaa, ladata ja ladata tiedostoja Dropbox.

Ensinnäkin sinun on annettava pääsy tilillesi. Tunnukset tallennetaan välimuistiin koko istunnon ajan.

drop_auth()

Sinut ohjataan uudelleen Dropbox todennuksen vahvistamiseksi.

Vie osoitteeseen Dropbox

Saat vahvistussivun. Voit sulkea sen ja palata R:hen

Vie osoitteeseen Dropbox

Voit luoda kansion funktiolla drop_create().

  • drop_create('my_first_drop'): Luo kansio ensimmäiseen haaraan Dropbox
  • drop_create('First_branch/my_first_drop'): Luo kansio olemassa olevan First_branch-kansion sisään.
drop_create('my_first_drop')

lähtö:

Vie osoitteeseen Dropbox

In DropBox

Vie osoitteeseen Dropbox

Voit ladata .csv-tiedoston Dropbox, käytä funktiota drop_upload().

Perussyntaksi:

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

lähtö:

Vie osoitteeseen Dropbox

DropillaBox

Vie osoitteeseen Dropbox

Voit lukea csv-tiedoston osoitteesta Dropbox funktiolla drop_read_csv()

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

lähtö:

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

Kun olet lopettanut tiedoston käytön ja haluat poistaa sen. Sinun on kirjoitettava tiedoston polku funktioon drop_delete()

drop_delete('my_first_drop/table_car.csv')

lähtö:

Vie osoitteeseen Dropbox

On myös mahdollista poistaa kansio

drop_delete('my_first_drop')

lähtö:

Vie osoitteeseen Dropbox

Tietojen vienti R:stä: Funktioviite

Jokainen tässä opetusohjelmassa käytetty vientifunktio on lueteltu alla:

Kirjasto Tavoite Toiminto
pohja Vie csv write.csv()
XLSX Vie excel kirjoittaa.xlsx()
satama Vie spss write_sav()
satama Vie sas write_sas()
satama Vientitila write_dta()
pohja Vie R-objekteja tallenna() / tallennaRDS()
Google asema Lataa Google Drive drive_upload()
Google asema Avaa sisään Google Drive drive_browse()
Google asema Hae tiedostotunnus drive_get(as_id())
Google asema Lataa Google Drive drive_download()
Google asema Poista tiedosto kohteesta Google Drive drive_rm()
rdrop2 Authentication drop_auth()
rdrop2 Luo kansio drop_create()
rdrop2 Lataa Dropbox drop_upload()
rdrop2 Lue csv osoitteesta Dropbox drop_read_csv()
rdrop2 Poista tiedosto kohteesta Dropbox drop_delete()

UKK

saveRDS() tallentaa yhden objektin ja readRDS() antaa sinun antaa sille minkä tahansa nimen. save() tallentaa useita objekteja ja load() palauttaa niiden alkuperäiset nimet, jotka voivat hiljaisesti korvata ympäristössäsi jo olevia muuttujia.

Oletusarvoisesti write.csv() kirjoittaa rivien nimet nimettömänä ensimmäisenä sarakkeena. Jos haluat tämän pois päältä, anna arvo row.names = FALSE. Muussa tapauksessa tiedoston uudelleentuonti tuottaa satunnaisen X-sarakkeen.

Käytä writexl::write_xlsx()- tai openxlsx::write.xlsx()-funktioita. Molemmat kirjoittavat .xlsx-tiedostoja puhtaassa R:ssä ilman Java riippuvuus, joka välttää r:nJava xlsx-paketin vaatimat asetukset.

Käytä RDS:ää tai Parquetia CSV:n sijaan. Molemmat säilyttävät saraketyypit ja tekijätasot, joten harjoitusdatajoukko latautuu uudelleen identtisesti. CSV muuntaa tyypit hiljaisesti ja on yleinen toistumattomien mallitulosten lähde.

Kyllä. Tekoälyavustajat voivat diagnosoida käyttöoikeusvirheitä, vääriä työhakemistoja ja puuttuvia Java xlsx-paketille. Vahvista aina kohde getwd()-funktiolla ennen kuin luotat ehdotettuun polkuun.

Tiivistä tämä viesti seuraavasti: