Hogyan exportáljunk adatokat R-ből CSV-be és Excelbe

⚡ Okos összefoglaló

Az R-ből exportált adatok lefedik egy adatkeret CSV, Excel, SPSS, SAS, STATA és natív R formátumokba írását, majd ugyanazon fájlnak a következőre való küldését: Google Drive or DropboxMinden exportálás egy mintát követ: egy függvényt, egy adatkeretet és egy célútvonalat.

  • 📁 Első úti cél: A getwd() függvény a munkakönyvtárat adja meg, és minden relatív fájlnév ide kerül, kivéve, ha teljes elérési utat adunk meg.
  • 📄 CSV exportálás: A write.csv(df, „file.csv”) az univerzális beállítás, a write.csv2() pedig pontosvesszős elválasztóra vált.
  • 📗 Excel exportálás: Az xlsx csomagban található write.xlsx() függvénynek működő Java telepítés a gépre.
  • 🔄 Statisztikai szoftver: A haven csomag SPSS, SAS és STATA fájlokat ír a write_sav(), write_sas() és write_dta() függvénnyel.
  • 💾 Natív formátumok: A saveRDS() egyetlen objektumot tárol, míg a save() többet, mindkettő pontosan megőrzi a faktorszinteket és az attribútumokat.
  • ☁️ Feltöltés felhőbe: A GoogleDrive és az rdrop2 munkamenetenként egyszer hitelesíti magát, majd közvetlenül az R-ből tölt fel, tölt le és töröl fájlokat.

Adatok exportálása R CSV Excelből

Hogyan exportálhatunk adatokat az R-ből

Ebben az oktatóanyagban megtanuljuk, hogyan exportálhatunk adatokat R környezetből különböző formátumokba.

Az adatok merevlemezre történő exportálásához szükség van a fájl elérési útjára és egy kiterjesztésre. Először is, az elérési út az a hely, ahol az adatokat tárolni fogják. Ebben az oktatóanyagban látni fogja, hogyan tárolhat adatokat:

  • A merevlemez
  • Google Drive
  • Dropbox

Másodszor, az R számos formátumban képes kiírni az adatokat. Ez az oktatóanyag a legfontosabb fájlkiterjesztéseket ismerteti:

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

Minden exportálás ugyanazt az alakot követi: egy függvényhívás, egy adatkeret és egy célútvonal.

Exportálás merevlemezre

Kezdetben az adatokat közvetlenül a munkakönyvtárba mentheti. A következő kód kiírja a munkakönyvtár elérési útját:

directory <- getwd()
directory

output:

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

Hacsak nem ad meg teljes elérési utat, minden fájl ebbe a munkakönyvtárba kerül. Az alapértelmezett érték rendszerenként eltérő, jellemzően a felhasználó saját mappája a macOS és a Linux és a Dokumentumok mappa a Windows, de a getwd() mindig az aktuális értéket mutatja. Módosíthatod a setwd() függvénnyel, vagy egyszerűen átadhatsz egy teljes elérési utat a write függvénynek.

setwd("/Users/USERNAME/Downloads")

Adatkeret létrehozása

Először is, készíts egy kis adatkeretet: az MTCARS adatkészletből a fogyasztás (mpg) és a fogyasztás (disp) átlagát, fokozatonként csoportosítva.

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

output:

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

A táblázat három sort és három oszlopot tartalmaz. Létrehozhat egy CSV-fájlt a write.csv függvénnyel az R-ben.

DataFrame exportálása CSV-fájlba az R-ben

A write.csv alapvető szintaxisa R-ben a DataFrame exportálásához CSV-fájlba R-ben:

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élda:

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

Code Magyarázat

  • write.csv(df, "table_car.csv"): Hozzon létre egy CSV-fájlt a merevlemezen:
    • df: a környezetben lévő adatkeret neve
    • „table_car.csv”: Nevezze el a fájlt table_car, és tárolja csv-ként

MegjegyzésekA write.csv2() függvény ugyanazt a fájlt írja ki pontosvesszővel elválasztóként és vesszővel tizedesjelként, ami a kontinentális Európa nagy részén szokásos.

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

MegjegyzésekKizárólag pedagógiai célból létrehoztunk egy open_folder() nevű függvényt, amely megnyitja a könyvtár mappáját. Csak le kell futtatnod az alábbi kódot, és meg kell nézned, hol található a csv fájl. Látnod kell egy table_car.csv nevű fájlt.

# 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 exportálása Excel fájlba R-ben

Az Excelbe exportálás egyszerű a következőn: Windows és egy kicsit trükkösebb macOSMindkettő az xlsx könyvtárat használja, és a különbség csak a telepítésben van, mivel az xlsx a következőtől függ: Java. Java jelen kell lennie a gépen, mielőtt a csomag betöltődik.

Windows Felhasználók

On Windows, telepítse a könyvtárat közvetlenül a conda paranccsal:

conda install -c r r-xlsx

A könyvtár telepítése után a write.xlsx() létrehoz egy új Excel-munkafüzetet a munkakönyvtárban:

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

Ha Ön Mac OS-felhasználó, kövesse az alábbi lépéseket:

  • 1. lépés: Telepítse a legújabb verzióját Java
  • 2. lépés: Telepítse az r könyvtáratJava
  • 3. lépés: Telepítse az xlsx könyvtárat

Step 1) Letölthetnéd Java hivatalostól Oracle webhelyet, és telepítse.

Visszatérhet az Rstudióhoz, és megnézheti, melyik verziója Java telepítve van.

system("java -version")

Bármely friss Java kiadás működik. Ha a parancs nem jelez semmit, Java nincs telepítve, és az xlsx csomag nem fog betöltődni.

Step 2) Telepítenie kell az rjava-t az R-be. Javasoltuk, hogy telepítse az R és az Rstudio alkalmazást az Anacondával. Az Anaconda kezeli a könyvtárak közötti függőséget. Ebben az értelemben az Anaconda kezelni fogja az r bonyolultságátJava telepítés.

Először is frissítenie kell a conda-t, majd telepítenie kell a könyvtár. A következő két kódsort másolhatja és beillesztheti a terminálba.

conda update conda
conda install -c r r-rjava

Ezután nyissa meg az rjavát az Rstudioban

library(rJava)

Step 3) Végül itt az ideje telepíteni az xlsx-et. Még egyszer használhatod megye csinálni:

conda install -c r r-xlsx

Csakúgy, mint a Windows felhasználók, az write.xlsx() függvénnyel mentheti az adatokat.

library(xlsx)

output:

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

Adatok exportálása R-ből különböző szoftverekre

Az adatok exportálása különböző szoftverekbe ugyanolyan egyszerű, mint importálásuk. A könyvtár „menedéke” kényelmes módot biztosít az adatok exportálására

  • SPSS
  • sas
  • volt

Először is importálja a könyvtárat. Ha nincs „menedéked”, elmehetsz itt telepítéséhez.

library(haven)

SPSS fájl

Az alábbiakban található az adatok SPSS szoftverbe történő exportálásához szükséges kód:

write_sav(df, "table_car.sav")

SAS-fájl

Ugyanolyan egyszerű, mint az spss, exportálhatod sas-ba

write_sas(df, "table_car.sas7bdat")

STATA-fájl

Végül a haven könyvtár lehetővé teszi a .dta fájl írását.

write_dta(df, "table_car.dta")

Hogyan exportálhatunk adatokat R natív formátumokba

Ha az objektumot az R-ben szeretnéd tartani, ahelyett, hogy egy másik programnak adnád át, használd a két natív formátum egyikét. A save() függvény egy vagy több elnevezett objektumot ír egy .RData fájlba:

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

Az alternatíva a saveRDS(), amely pontosan egy objektumot tárol, és lehetővé teszi az olvasó számára, hogy a visszaúton kiválassza a nevé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ériumai saveRDS() / readRDS() mentés() / betöltés()
Objektumok fájlonként Pontosan egy Egy vagy sok
Objektum neve újratöltéskor Te választod Mentettként visszaállítva
Felülírja a környezetet Nem Igen, csendben
Szokásos kiterjesztés .rds fájlok .RData

Szkriptekben előnyben részesítsd a saveRDS() függvényt, mivel a load() képes csendben felülírni egy azonos nevű meglévő objektumot. Mindkét formátum érintetlenül tartja a faktorszinteket, a sorrendet és az attribútumokat, amire a CSV nem képes.

A fent létrehozott fájlokat a jelenlegi munkakönyvtárban ellenőrizheti

Adatok exportálása R-ből STATA fájlba

Lépjen kapcsolatba a felhőszolgáltatásokkal

Végül, de nem utolsó sorban, R fantasztikus könyvtárakkal van felszerelve a számítási felhő szolgáltatásokkal való interakcióhoz. Az oktatóanyag utolsó része a fájlok exportálásával/importálásával foglalkozik:

  • Google Drive
  • Dropbox

Megjegyzések: Az oktatóanyag ezen része feltételezi, hogy van fiókod a következővel: Google és a Dropbox. Ha nem, gyorsan létrehozhat egyet: Google Drive: https://accounts.google.com/SignUp?hl=en - Dropbox: https://www.dropbox.com/h

Google Drive

Telepítenie kell a googledrive könyvtárat, hogy elérje az interakciót lehetővé tevő funkciót Google Drive.

A könyvtár még nem érhető el az Anacondánál. Az alábbi kóddal telepítheti a konzolban.

install.packages("googledrive")

és kinyitod a könyvtárat.

library(googledrive)

Nem Conda felhasználók számára a kódtárak telepítése egyszerű. Az install.packages('CSOMAG NEVE') paranccsal, idézőjelek között a csomag nevével telepítve, zárójelben. Az R a .libPaths() által visszaadott első helyre telepíti.

Feltöltés a Google Drive

Fájl feltöltése ide: Google meghajtóhoz a drive_upload() függvényt kell használnod.

Minden alkalommal, amikor újraindítja az Rstudio-t, a rendszer kérni fogja, hogy engedélyezze a hozzáférést a tidyverse-hez Google Drive.

A drive_upload() alapvető szintaxisa a következő

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.

A kód elindítása után meg kell erősítenie néhány kérdést

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

output:

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

A hozzáférés megerősítéséhez írja be az 1-et a konzolba

Google Drive

Ezután átirányítjuk a következőre: Google API-t a hozzáférés engedélyezéséhez. Kattintson az Engedélyezés gombra.

Google Drive

A hitelesítés befejezése után kiléphet a böngészőből.

Google Drive

Az Rstudio konzolján láthatja a lépés összefoglalását. Google sikeresen feltöltötte a meghajtón helyileg található fájlt. Google minden egyes fájlhoz azonosítót rendelt a meghajtón.

Google Drive

Ebben a fájlban láthatod Google Spreadsheet.

drive_browse("table_car")

output:

Önt átirányítják erre Google Spreadsheet

Google Drive

Importál ... ból Google Drive

A fájlazonosító szerinti letöltés a megbízható módszer. Ha ismeri a fájlnevet, először olvassa be az azonosítóját:

Megjegyzések: Az internetkapcsolattól és a meghajtó méretétől függően ez időt vesz igénybe.

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

Google Drive

Az azonosítót az x változóban tároltad. A drive_download() függvény lehetővé teszi a fájl letöltését innen Google Drive.

Az alap szintaxis a következő:

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.

Végül letöltheti a fájlt:

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

Code Magyarázat

  • drive_download(): A fájl letöltésére szolgáló funkció Google Drive
  • as_id(x): Az azonosító használatával tallózhat a fájlban Google Drive
  • overwrite = TRUE: Ha a fájl létezik, írja felül, különben a végrehajtás leáll A fájl nevének helyi megjelenítéséhez a következőket használhatja:

output:

Google Drive

A fájl a munkakönyvtáradban tárolódik. Ne felejtsd el hozzáadni a fájlkiterjesztést, mielőtt megnyitod R-ben. A teljes nevet a paste() függvénnyel hozhatod létre (pl. 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

output:

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

Végül eltávolíthatja a fájlt a Google vezetni.

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

output:

Google Drive

A törlést aszinkron módon dolgozza fel a Google, így a fájl eltűnése eltarthat egy ideig.

Exportálás Dropbox

R interakcióba lép Dropbox az rdrop2 könyvtáron keresztül. A könyvtár az Anacondánál sem érhető el. A konzolon keresztül telepítheti

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

Ideiglenes hozzáférést biztosítasz a következőhöz: Dropbox a hitelesítő adataiddal. A hitelesítés után az R fájlokat hozhat létre, távolíthat el, tölthet fel és tölthet le a Dropbox.

Először is hozzáférést kell adnia fiókjához. A hitelesítő adatok az összes munkamenet során gyorsítótárban vannak.

drop_auth()

Önt átirányítják erre Dropbox a hitelesítés megerősítéséhez.

Exportálás Dropbox

Megerősítő oldalt fog kapni. Bezárhatja, és visszatérhet az R-hez

Exportálás Dropbox

Mappát a drop_create() függvénnyel hozhatunk létre.

  • drop_create('my_first_drop'): Hozzon létre egy mappát az első ágban Dropbox
  • drop_create('First_branch/my_first_drop'): Hozzon létre egy mappát a meglévő First_branch mappában.
drop_create('my_first_drop')

output:

Exportálás Dropbox

In DropBox

Exportálás Dropbox

A .csv fájl feltöltéséhez Dropbox, használja a drop_upload() függvényt.

Alapszintaxis:

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

output:

Exportálás Dropbox

A DropnálBox

Exportálás Dropbox

A csv fájlt innen olvashatod Dropbox a drop_read_csv() függvénnyel

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

output:

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

Ha befejezte a fájl használatát, és törölni szeretné. Meg kell írni a fájl elérési útját a drop_delete() függvényben

drop_delete('my_first_drop/table_car.csv')

output:

Exportálás Dropbox

Lehetőség van mappa törlésére is

drop_delete('my_first_drop')

output:

Exportálás Dropbox

Adatok exportálása R-ből: Függvényreferencia

Az oktatóanyagban használt összes exportfüggvényt az alábbiakban soroljuk fel:

könyvtár Objektív Funkció
bázis Csv exportálása írás.csv()
xlsx Excel excel írás.xlsx()
kikötő Export spss write_sav()
kikötő Export sas write_sas()
kikötő Exportállapot write_dta()
bázis R objektumok exportálása mentés() / RDS mentése()
Google Drive Feltöltés Google Drive drive_upload()
Google Drive Nyisd meg Google Drive drive_browse()
Google Drive Fájlazonosító lekérése drive_get(as_id())
Google Drive Letöltés Google Drive meghajtó_letöltés()
Google Drive Fájl eltávolítása innen Google Drive drive_rm()
rdrop2 Hitelesítés drop_auth()
rdrop2 Hozzon létre egy mappát drop_create()
rdrop2 Feltöltés a Dropbox drop_upload()
rdrop2 Csv olvasása innen Dropbox drop_read_csv()
rdrop2 Fájl törlése innen Dropbox drop_delete()

GYIK

A saveRDS() egyetlen objektumot tárol, a readRDS() pedig lehetővé teszi, hogy bármilyen nevet rendeljünk hozzá. A save() több objektumot tárol, a load() pedig visszaállítja azok eredeti neveit, amelyek csendben felülírhatják a környezetben már meglévő változókat.

Alapértelmezés szerint a write.csv() függvény névtelen első oszlopként írja ki a sorneveket. Adja meg a row.names = FALSE értéket a letiltáshoz, ellenkező esetben a fájl újraimportálása egy eltévedt X oszlopot eredményez.

Használd a writexl::write_xlsx() vagy az openxlsx::write.xlsx() függvényt. Mindkettő .xlsx fájlokat ír tiszta R-ben, Java függőség, amely elkerüli az r-tJava az xlsx csomag által megkövetelt beállítás.

Használj RDS-t vagy Parquet-et CSV helyett. Mindkettő megőrzi az oszloptípusokat és a faktorszinteket, így a betanító adatkészlet ugyanúgy töltődik újra. A CSV csendesen konvertálja a típusokat, és gyakori forrása a reprodukálhatatlan modelleredményeknek.

Igen. A mesterséges intelligencia asszisztensek képesek diagnosztizálni az engedélyezési hibákat, a helytelen munkakönyvtárakat és a hiányzó fájlokat. Java az xlsx csomaghoz. Mindig erősítse meg a célt a getwd() függvénnyel, mielőtt megbízna egy javasolt elérési úton.

Foglald össze ezt a bejegyzést a következőképpen: