Bine ati venit! Dacă doriți să începeți să vă scufundați în știința datelor și statisticile, atunci cadrele de date, fișierele CSV și R vor fi instrumente esențiale pentru dvs. Să vedem cum puteți folosi capacitățile lor uimitoare.
În acest articol, veți afla:
- Ce sunt fișierele CSV și pentru ce sunt utilizate.
- Cum să creați fișiere CSV utilizând Foi de calcul Google.
- Cum se citesc fișiere CSV în R.
- Ce sunt cadrele de date și pentru ce sunt utilizate.
- Cum se accesează elementele unui cadru de date.
- Cum se modifică un cadru de date.
- Cum se adaugă și se șterg rânduri și coloane.
Vom folosi RStudio, un IDE open-source (mediu de dezvoltare integrat) pentru a rula exemplele.
Sa incepem! ✨
Conţinut
🔹 Introducere în fișiere CSV
Fișierele CSV (valori separate prin virgulă) pot fi considerate unul dintre elementele de bază ale analizei datelor, deoarece sunt utilizate pentru a stoca date reprezentate sub forma unui tabel.
În acest fișier, valorile sunt separate prin virgule pentru a reprezenta diferitele coloane ale tabelului, ca în acest exemplu:
Vom genera acest fișier folosind Foi de calcul Google.
🔸 Cum se creează un fișier CSV folosind Foi de calcul Google
Să creăm primul fișier CSV folosind Foi de calcul Google.
Pasul 1: Du-te la Site-ul Google Foi de calcul și faceți clic pe „Accesați Foi de calcul Google”:
💡 Sfat: Puteți accesa Foi de calcul Google făcând clic pe butonul situat în marginea din dreapta sus a paginii de pornire Google:
Dacă mărim, vom vedea butonul „Foi”:
💡 Bacsis: Pentru a folosi Foi de calcul Google, trebuie să aveți un cont Gmail. Alternativ, puteți crea un fișier CSV utilizând MS Excel sau un alt editor de foi de calcul.
Veți vedea acest panou:
Pasul 2: Creați o foaie de calcul goală dând clic pe butonul „+”.
Acum aveți o nouă foaie de calcul goală:
Pasul 3: Schimbați numele foii de calcul în students_data
. Va trebui să folosim numele fișierului pentru a lucra cu cadre de date. Scrieți noul nume și faceți clic pe Enter pentru a confirma modificarea.
Pasul 4: În primul rând al foii de calcul, scrieți titlurile coloanelor.
Când importați un fișier CSV în R, se apelează titlurile coloanelor variabile. Vom defini șase variabile: first_name
, last_name
, age
, num_siblings
, num_pets
, și eye_color
, după cum puteți vedea chiar mai jos:
💡 Bacsis: Observați că numele sunt scrise cu litere mici, iar cuvintele sunt separate cu o subliniere. Acest lucru nu este obligatoriu, dar din moment ce va trebui să accesați aceste nume în R, este foarte obișnuit să utilizați acest format.
Pasul 5: Introduceți datele pentru fiecare dintre coloane.
Când citiți fișierul în R, fiecare rând se numește observareși corespunde datelor preluate de la un individ, animal, obiect sau entitate de la care am colectat date.
În acest caz, fiecare rând corespunde datelor unui student:
Pasul 6: Descărcați fișierul CSV dând clic pe File -> Download -> Comma-separated values
, după cum puteți vedea mai jos:
Pasul 7: Redenumiți fișierul CSV. Va trebui să eliminați „Sheet1” din numele implicit, deoarece Google Sheet va adăuga automat acest lucru la numele fișierului.
Buna treaba! Acum aveți fișierul CSV și este timpul să începeți să lucrați cu el în R.
🔹 Cum se citește un fișier CSV în R
În RStudio, primul pas înainte de a citi un fișier CSV este să vă asigurați că directorul curent de lucru este directorul în care se află fișierul CSV.
💡 Bacsis: Dacă nu este cazul, va trebui să utilizați calea completă către fișier.
Schimbați directorul de lucru curent
Puteți schimba directorul curent de lucru în acest panou:
Dacă mărim, puteți vedea calea curentă (1) și o puteți selecta pe cea nouă făcând clic pe elipsa (...
) butonul din dreapta (2):
💡 Bacsis: De asemenea, puteți verifica directorul curent de lucru cu getwd()
în consola interactivă.
Apoi, faceți clic pe „Mai multe” și „Setați ca director de lucru”.
Citiți fișierul CSV
Odată ce ați configurat directorul curent de lucru, puteți citi fișierul CSV cu această comandă:
În codul R, avem acest lucru:
> students_data <- read.csv("students_data.csv")
💡 Bacsis: Îl atribuim variabilei students_data
pentru a accesa datele fișierului CSV cu această variabilă. În R, putem separa cuvinte folosind puncte .
, subliniază _
, UpperCamelCase
, sau lowerCamelCase
.
După executarea acestei comenzi, veți vedea acest lucru în panoul din dreapta sus:
Acum aveți o variabilă definită în mediu! Să vedem ce sunt cadrele de date și cum sunt strâns legate de fișierele CSV.
🔸 Introducere în cadrele de date
Cadrele de date sunt formatul digital standard utilizat pentru stocarea datelor statistice sub forma unui tabel. Când citiți un fișier CSV în R, se generează un cadru de date.
Putem confirma acest lucru verificând tipul variabilei cu class
funcţie:
> class(students_data)
[1] "data.frame"
Are sens, nu? Fișierele CSV conțin date reprezentate sub forma unui tabel, iar cadrele de date reprezintă acele date tabulare din codul dvs., astfel încât acestea sunt conectate profund.
Dacă introduceți această variabilă în consola interactivă, veți vedea conținutul fișierului CSV:
> students_data
first_name last_name age num_siblings num_pets eye_color
1 Emily Dawson 15 2 5 BLUE
2 Rose Patterson 14 5 0 GREEN
3 Alexander Smith 16 0 2 BROWN
4 Nora Navona 16 4 10 GREEN
5 Gino Sand 17 3 8 BLUE
Mai multe informații despre cadrul de date
Aveți mai multe alternative diferite pentru a vedea numărul de variabile și observații ale cadrului de date:
- Prima dvs. opțiune este să vă uitați la panoul din dreapta sus, care arată variabilele care sunt definite în prezent în mediu. Acest cadru de date are 5 observații (rânduri) și 6 variabile (coloane):
- O altă alternativă este utilizarea funcțiilor
nrow
șincol
în consola interactivă sau în programul dvs., trecând cadrul de date ca argument. Obținem aceleași rezultate: 5 rânduri și 6 coloane.
> nrow(students_data)
[1] 5
> ncol(students_data)
[1] 6
- De asemenea, puteți vedea mai multe informații despre cadrul de date folosind
str
funcţie:
> str(students_data)
'data.frame': 5 obs. of 6 variables:
$ first_name : Factor w/ 5 levels "Alexander","Emily",..: 2 5 1 4 3
$ last_name : Factor w/ 5 levels "Dawson","Navona",..: 1 3 5 2 4
$ age : int 15 14 16 16 17
$ num_siblings: int 2 5 0 4 3
$ num_pets : int 5 0 2 10 8
$ eye_color : Factor w/ 3 levels "BLUE","BROWN",..: 1 3 2 3 1
Această funcție (aplicată unui cadru de date) vă spune:
- Numărul de observații (rânduri).
- Numărul de variabile (coloane).
- Numele variabilelor.
- Tipurile de date ale variabilelor.
- Mai multe informații despre variabile.
Puteți vedea că această funcție este foarte bună atunci când doriți să aflați mai multe despre datele cu care lucrați.
💡 Bacsis: În R, un „factor” este o variabilă calitativă, care este o variabilă ale cărei valori reprezintă categorii. De exemplu, eye_color
are valorile "BLUE"
, "BROWN"
, "GREEN"
care sunt categorii, așa cum puteți vedea în rezultatul str
mai sus, această variabilă este definită automat ca „factor” atunci când fișierul CSV este citit în R.
🔹 Cadre de date: operațiuni și funcții cheie
Acum știi cum să vezi mai multe informații despre cadrul de date. Dar magia cadrelor de date constă în capacitățile și funcționalitățile uimitoare pe care le oferă, așa că haideți să vedem acest lucru mai detaliat.
Cum se accesează o valoare a unui cadru de date
Cadrele de date sunt ca matrici, astfel încât să puteți accesa valorile individuale folosind doi indici înconjurați de paranteze pătrate și separați printr-o virgulă pentru a indica ce rânduri și ce coloane doriți să includeți în rezultat, astfel:
De exemplu, dacă vrem să accesăm valoarea lui eye_color
(coloana 6) a celui de-al patrulea student din date (rândul 4):
Trebuie să folosim această comandă:
> students_data[4, 6]
💡 Bacsis: În R, indicii încep de la 1
iar primul rând cu numele variabilelor nu este numărat.
Acesta este rezultatul:
[1] GREEN
Levels: BLUE BROWN GREEN
Puteți vedea că valoarea este "GREEN"
. Variabilele de tip „factor” au „niveluri” care reprezintă diferitele categorii sau valori pe care le pot lua. Această ieșire ne indică nivelurile variabilei eye_color
.
Cum se accesează rândurile și coloanele unui cadru de date
Putem folosi această sintaxă și pentru a accesa o gamă de rânduri și coloane pentru a obține o porțiune din matricea originală, astfel:
De exemplu, dacă dorim să obținem vârsta și numărul fraților din al treilea, al patrulea și al cincilea elev din listă, am folosi:
> students_data[3:5, 3:4]
age num_siblings
3 16 0
4 16 4
5 17 3
💡 Sfat: Sintaxa de bază pentru a defini un interval în R este <start>:<end>
. Rețineți că acești indici sunt inclusiv, deci al treilea și al cincilea element sunt incluși în exemplul de mai sus când scriem 3:5
.
Dacă dorim să obținem toate rândurile sau coloanele, omitem pur și simplu intervalul și includem virgula, astfel:
> students_data[3:5,]
first_name last_name age num_siblings num_pets eye_color
3 Alexander Smith 16 0 2 BROWN
4 Nora Navona 16 4 10 GREEN
5 Gino Sand 17 3 8 BLUE
Nu am inclus un interval pentru coloane după virgulă students_data[3:5,]
, deci obținem toate coloanele cadrului de date pentru cele trei rânduri pe care le-am specificat.
În mod similar, putem obține toate rândurile pentru un anumit interval de coloane dacă omitem rândurile:
> students_data[, 1:3]
first_name last_name age
1 Emily Dawson 15
2 Rose Patterson 14
3 Alexander Smith 16
4 Nora Navona 16
5 Gino Sand 17
💡 Sfat: Observați că trebuie să includeți în continuare virgula în ambele cazuri.
Cum se accesează o coloană
Există trei moduri de a accesa o întreagă coloană:
- Opțiunea 1: pentru a accesa o coloană și a o returna ca cadru de date, puteți utiliza această sintaxă:
De exemplu:
> students_data["first_name"]
first_name
1 Emily
2 Rose
3 Alexander
4 Nora
5 Gino
- Opțiunea # 2: pentru a obține o coloană ca vector (secvență), puteți utiliza această sintaxă:
💡 Sfat: Observați utilizarea fișierului $
simbol.
De exemplu:
> students_data$first_name
[1] Emily Rose Alexander Nora Gino
Levels: Alexander Emily Gino Nora Rose
- Opțiunea # 3: De asemenea, puteți utiliza această sintaxă pentru a obține coloana ca vector (a se vedea mai jos). Aceasta este echivalentă cu sintaxa anterioară:
> students_data[["first_name"]]
[1] Emily Rose Alexander Nora Gino
Levels: Alexander Emily Gino Nora Rose
Cum se filtrează rândurile unui cadru de date
Puteți filtra rândurile unui cadru de date pentru a obține o porțiune a matricei care îndeplinește anumite condiții.
Pentru aceasta, folosim această sintaxă, trecând condiția ca primul element între paranteze pătrate, apoi o virgulă și lăsând în cele din urmă al doilea element gol.
De exemplu, pentru a obține toate rândurile pentru care students_data$age > 16
, am folosi:
> students_data[students_data$age > 16,]
first_name last_name age num_siblings num_pets eye_color
5 Gino Sand 17 3 8 BLUE
Obținem un cadru de date cu rândurile care îndeplinesc această condiție.
Filtrați rândurile și alegeți coloane
Puteți combina această condiție cu o gamă de coloane:
> students_data[students_data$age > 16, 3:6]
age num_siblings num_pets eye_color
5 17 3 8 BLUE
Obținem rândurile care îndeplinesc condiția și coloanele din interval 3:6
.
🔸 Cum se modifică cadrele de date
Puteți modifica valorile individuale ale unui cadru de date, puteți adăuga coloane, adăugați rânduri și le puteți elimina. Să vedem cum puteți face acest lucru!
Cum se schimbă o valoare
Pentru a modifica o valoare individuală a cadrului de date, trebuie să utilizați această sintaxă:
De exemplu, dacă vrem să schimbăm valoarea care este în prezent la rândul 4 și coloana 6, notată în albastru chiar aici:
Trebuie să folosim această linie de cod:
students_data[4, 6] <- "BROWN"
💡 Sfat: Puteți utiliza, de asemenea =
ca operator de atribuire.
Aceasta este rezultatul. Valoarea a fost modificată cu succes.
💡 Sfat: Amintiți-vă că primul rând al fișierului CSV nu este numărat ca primul rând, deoarece are numele variabilelor.
Cum se adaugă rânduri într-un cadru de date
Pentru a adăuga un rând într-un cadru de date, trebuie să utilizați rbind
funcţie:
Această funcție ia două argumente:
- Cadrul de date pe care doriți să îl modificați.
- O listă cu datele noului rând. Pentru a crea lista, puteți utiliza fișierul
list()
funcție cu fiecare valoare separată printr-o virgulă.
Acesta este un exemplu:
> rbind(students_data, list("William", "Smith", 14, 7, 3, "BROWN"))
Ieșirea este:
first_name last_name age num_siblings num_pets eye_color
1 Emily Dawson 15 2 5 BLUE
2 Rose Patterson 14 5 0 GREEN
3 Alexander Smith 16 0 2 BROWN
4 Nora Navona 16 4 10 BROWN
5 Gino Sand 17 3 8 BLUE
6 <NA> Smith 14 7 3 BROWN
Dar asteapta! A fost afișat un mesaj de avertizare:
Mesaj de avertizare: În `[<-.factor`(`*tmp*`, ri, value = "William") :
invalid factor level, NA generated
And notice the first value of the sixth row, it is <NA>
:
6 <NA> Smith 14 7 3 BROWN
This occurred because the variable first_name
was defined automatically as a factor when we read the CSV file and factors have fixed “categories” (levels).
You cannot add a new level (value – "William"
) to this variable unless you read the CSV file with the value FALSE
for the parameter stringsAsFactors
, as shown below:
> students_data <- read.csv("students_data.csv", stringsAsFactors = FALSE)
Now, if we try to add this row, the data frame is modified successfully.
> students_data <- rbind(students_data, list("William", "Smith", 14, 7, 3, "BROWN"))
> students_data
first_name last_name age num_siblings num_pets eye_color
1 Emily Dawson 15 2 5 BLUE
2 Rose Patterson 14 5 0 GREEN
3 Alexander Smith 16 0 2 BROWN
4 Nora Navona 16 4 10 GREEN
5 Gino Sand 17 3 8 BLUE
6 William Smith 14 7 3 BROWN
💡 Tip: Note that if you read the CSV file again and assign it to the same variable, all the changes made previously will be removed and you will see the original data frame. You need to add this argument to the first line of code that reads the CSV file and then make changes to it.
How to Add Columns to a Data Frame
Adding columns to a data frame is much simpler. You need to use this syntax:
For example:
> students_data$GPA <- c(4.0, 3.5, 3.2, 3.15, 2.9, 3.0)
💡 Tip: The number of elements has to be equal to the number of rows of the data frame.
The output shows the data frame with the new GPA column:
> students_data
first_name last_name age num_siblings num_pets eye_color GPA
1 Emily Dawson 15 2 5 BLUE 4.00
2 Rose Patterson 14 5 0 GREEN 3.50
3 Alexander Smith 16 0 2 BROWN 3.20
4 Nora Navona 16 4 10 GREEN 3.15
5 Gino Sand 17 3 8 BLUE 2.90
6 William Smith 14 7 3 BROWN 3.00
How to Remove Columns
To remove columns from a data frame, you need to use this syntax:
When you assign the value Null to a column, that column is removed from the data frame automatically.
For example, to remove the age
column, we use:
> students_data$age <- NULL
The output is:
> students_data
first_name last_name num_siblings num_pets eye_color GPA
1 Emily Dawson 2 5 BLUE 4.00
2 Rose Patterson 5 0 GREEN 3.50
3 Alexander Smith 0 2 BROWN 3.20
4 Nora Navona 4 10 GREEN 3.15
5 Gino Sand 3 8 BLUE 2.90
6 William Smith 7 3 BROWN 3.00
How to Remove Rows
To remove rows from a data frame, you can use indices and ranges. For example, to remove the first row of a data frame:
The [-1,]
preia o porțiune din cadrul de date care nu include primul rând. Apoi, această porțiune este atribuită aceleiași variabile.
Dacă avem acest cadru de date și dorim să ștergem primul rând:
Ieșirea este un cadru de date care nu include primul rând:
În general, pentru a elimina un anumit rând, trebuie să utilizați această sintaxă unde <row_num>
este rândul pe care doriți să îl eliminați:
💡 Sfat: Observați -
semnează înainte de numărul rândului.
De exemplu, dacă vrem să eliminăm rândul 4 din acest cadru de date:
Ieșirea este:
După cum puteți vedea, rândul 4 a fost eliminat cu succes.
🔹 În rezumat
- Fișierele CSV sunt fișiere cu valori separate prin virgulă utilizate pentru a reprezenta date sub forma unui tabel. Aceste fișiere pot fi citite folosind R și RStudio.
- Cadrele de date sunt utilizate în R pentru a reprezenta date tabulare. Când citiți un fișier CSV, este creat un cadru de date pentru a stoca datele.
- Puteți accesa și modifica valorile, rândurile și coloanele unui cadru de date.
Sper cu adevărat că ți-a plăcut articolul meu și l-ai găsit util. Acum puteți lucra cu cadre de date și fișiere CSV în R.
Dacă ți-a plăcut acest articol, ia în considerare înscriindu-mă la noul meu curs online “Introducere în statistici în R – O abordare practică“
#Cum #să #lucrați #cadre #date #și #fișiere #CSV #în #introducere #detaliată #exemple
Cum să lucrați cu cadre de date și fișiere CSV în R – O introducere detaliată cu exemple