
Introducere
Când învață R, majoritatea oamenilor se concentrează pe funcții, modele și vizualizări. Cu toate acestea, multe probleme din lumea reală încep mult mai devreme – la etapa de import de date — și se încheie mult mai târziu — cu exportarea rezultatelor.
Dacă datele sunt citite incorect, nicio metodă statistică nu poate salva analiza.
În această postare, ne concentrăm pe logica importului și exportului de date în Rfolosind Fișiere CSV și Excel. În loc să memorăm funcții, construim un model mental pentru modul în care R interacționează cu fișierele.
De ce contează importul și exportul de date
Analiza datelor este un flux de lucru:
Data source → Import → Analysis → Results → Export → Sharing
Erorile apar adesea la import etapă:
-
delimitatori greșiți,
-
separatoare zecimale incorecte,
-
căi incorecte ale fișierelor,
-
tipuri de date convertite silențios.
Rezultatul?
Un model care funcționează perfect — pe date greșite.
CSV vs Excel: nu este o competiție
Înainte de a atinge R, ar trebui să clarificăm diferența dintre formatele de fișiere.
Fișiere CSV
-
Fișiere text simplu
-
Ușoare și rapide
-
Suportat universal
-
Un tabel pe fișier
-
Fără formatare, doar date
Exemplu:
total_bill,tip,sex 16.99,1.01,Female
Fișiere Excel
-
Format binar (
.xlsx) -
Poate conține mai multe foi
-
Stocați structura și prezentarea împreună
-
Folosit pe scară largă pentru raportare și partajare
Idee cheie:
CSV este a format de transport de date.
Excel este un format de comunicare.
Director de lucru: unde arată de fapt R
Una dintre cele mai frecvente greșeli pentru începători nu are nimic de-a face cu sintaxa R.
R face nu caută fișiere în întregul computer. Se uită doar în interiorul său directorul de lucru.
Această comandă arată unde caută R în prezent.
Dacă un fișier există pe computer, dar nu în acest director, R se comportă ca și cum fișierul nu ar exista.
Acesta este motivul pentru erori precum:
cannot open the connection
indica de obicei a problema drumuluinu este o problemă de codare.
Setul de date exemplu: tips
Pe parcursul acestei postări, folosim un singur set de date: sfaturi.
-
Date de bacșiș la restaurant
-
Mic și ușor de înțeles
-
Conține variabile numerice și categoriale
-
Ideal pentru demonstrarea logicii de import/export
Sursa datelor:
https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv
Citirea fișierelor CSV: logica de bază
Când R citește un fișier CSV, are nevoie de răspunsuri la patru întrebări:
-
Cum sunt separate coloanele?
-
Primul rând este un antet?
-
Care este separatorul zecimal?
-
Cum ar trebui interpretat textul?
Aceste răspunsuri sunt oferite prin argumente ale funcției.
read.table(): Fundația
Toate funcțiile de citire CSV din baza R sunt construite pe baza read.table().
tips <- read.table( file = "tips.csv", header = TRUE, sep = ",", dec = ".", stringsAsFactors = FALSE )
Înțelegerea acestei funcții înseamnă înțelegerea importului CSV în R.
read.csv() și ipotezele sale
read.csv() este pur și simplu o scurtătură pentru un caz obișnuit:
tips <- read.csv("tips.csv")
Acest lucru funcționează perfect – dacă ipotezele se potrivesc cu fișierul.
Partea periculoasă? R poate să nu arunce o eroare chiar dacă presupunerile sunt greșite.
Cele mai periculoase erori sunt cele silențioase.
read.csv2() și diferențe regionale
În multe seturi de date europene:
total_bill;tip;sex 16,99;1,01;Female
Pentru aceasta structura, read.csv2() este proiectat.
tips2 <- read.csv2("tips_semicolon.csv")
Nuanță importantă:
Chiar dacă zecimale folosesc puncte, read.csv2() poate funcționa în continuare în unele cazuri — dar acest lucru nu este garantat.
Abordarea corectă:
Inspectați întotdeauna structura fișierului înainte de a alege funcția.
Scrierea fișierelor CSV din R
Analiza datelor se termină rareori cu R. Rezultatele sunt partajate ca fișiere.
Se scrie CSV separat prin virgulă
write.csv(tips, "tips_comma.csv", row.names = FALSE)
Scrierea CSV separată prin punct și virgulă
write.csv2(tips, "tips_semicolon.csv", row.names = FALSE)
Alegerea formatului corect depinde de care va citi în continuare dosarul.
De ce avem încă nevoie de Excel
CSV este superior din punct de vedere tehnic din multe puncte de vedere. Cu toate acestea, Excel rămâne dominant în practică.
De ce?
Excel nu este un instrument de analiză, ci el este un instrument puternic de livrare.
Lucrul cu Excel în R: openxlsx
The openxlsx pachetul permite operațiuni Excel fără a necesita Excel în sine.
Scrierea unui fișier Excel simplu
write.xlsx(tips, "tips.xlsx", sheetName = "tips")
Citirea din Excel
tips_excel <- read.xlsx("tips.xlsx", sheet = 1)
Foi multiple: un mini raport
Excel strălucește la organizarea tabelelor aferente.
summary_tips <- aggregate(tip ~ day, data = tips, mean) wb <- createWorkbook() addWorksheet(wb, "Raw Data") writeData(wb, "Raw Data", tips) addWorksheet(wb, "Summary") writeData(wb, "Summary", summary_tips) saveWorkbook(wb, "tips_report.xlsx", overwrite = TRUE)
Un singur dosar.
Vederi multiple.
Structură curată.
Greșeli frecvente de urmărit
Majoritatea erorilor nu sunt cauzate de R, ci de ipoteze:
-
Director de lucru incorect
-
Delimitator greșit (
sep) -
Separator zecimal greșit (
dec) -
Citirea unei foi Excel greșite
-
Suprascrierea fișierelor neintenționat
Un obicei sănătos după fiecare import:
head(data) str(data) summary(data)
Gânduri finale
Dacă puteți:
ați depășit deja unul dintre cele mai importante praguri în analiza datelor.
Pentru o discuție complementară, s-ar putea să găsiți și acest articol util:
https://medium.com/p/e730f4a84b3b
Versiune extinsă pe mediu:
https://medium.com/@Fatih.Tuzen/understanding-data-import-and-export-in-r-working-with-csv-and-excel-files-6322e61049b2
