Uvoz podataka u R: čitanje CSV, Excel, SPSS, Stata, SAS datoteka

Podaci mogu postojati u različitim formatima. Za svaki format R ima specifičnu funkciju i argument. Ovaj vodič objašnjava kako uvesti podatke u R.

Pročitajte CSV

Jedna od najrasprostranjenijih pohrana podataka je format datoteke .csv (vrijednosti odvojene zarezima). R učitava niz biblioteka tijekom pokretanja, uključujući utils paket. Ovaj je paket prikladan za otvaranje csv datoteka u kombinaciji s funkcijom reading.csv(). Ovdje je sintaksa za read.csv

read.csv(file, header = TRUE, sep = ",")

Argument:

  • file: PATH gdje je datoteka pohranjena
  • zaglavlje: potvrdite ima li datoteka zaglavlje ili ne, prema zadanim postavkama zaglavlje je postavljeno na TRUE
  • rujna: simbol koji se koristi za dijeljenje varijable. Prema zadanim postavkama, `,`.

Pročitat ćemo naziv podatkovne datoteke mtcats. Csv datoteka pohranjena je na mreži. Ako je vaša .csv datoteka pohranjena lokalno, možete zamijeniti PATH unutar isječka koda. Ne zaboravite ga zamotati unutar " ". PATH mora biti vrijednost niza.

Za korisnike Maca, staza za mapu za preuzimanje je:

 "/Users/USERNAME/Downloads/FILENAME.csv"

Za korisnike sustava Windows:

"C:\Users\USERNAME\Downloads\FILENAME.csv"

Imajte na umu da uvijek trebamo navesti ekstenziju naziva datoteke.

  • . CSV
  • . Xlsx
  • . TXT
  • ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'                
df <- read.csv(PATH, header =  TRUE, sep = ',')
length(df)

Izlaz

## [1] 12
class(df$X)

Izlaz

## [1] "factor"

R prema zadanim postavkama vraća vrijednosti znakova kao faktor. Ovu postavku možemo isključiti dodavanjem stringsAsFactors = FALSE.

PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'
df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE)
class(df$X)

Izlaz

## [1] "character"

Klasa za varijablu X sada je znak.

Čitajte Excel datoteke

nadmašiti datoteke su vrlo popularne među analitičarima podataka. S proračunskim tablicama lako je raditi i fleksibilne su. R je opremljen bibliotekom readxl za uvoz Excel proračunske tablice.

Koristite ovaj kod

require(readxl)

da provjerite je li readxl instaliran na vašem stroju. Ako instalirate r s r-conda-essential, biblioteka je već instalirana. Trebali biste vidjeti u naredbenom prozoru:

Izlaz

Loading required package: readxl.

Ako paket ne izađe, možete ga instalirati s condom knjižnica ili u terminalu upotrijebite conda install -c mittner r-readxl.

Koristite sljedeću naredbu za učitavanje biblioteke za uvoz excel datoteka.

library(readxl)

readxl_example()

Tijekom ovog vodiča koristimo se primjerima uključenim u paket readxl.

Upotrijebite kod

readxl_example()

da vidite sve dostupne proračunske tablice u knjižnici.

Readxl_Primjer

Da biste provjerili lokaciju proračunske tablice pod nazivom clippy.xls, jednostavno upotrijebite

readxl_example("geometry.xls")

Readxl_Primjer

Ako instalirate R s condom, proračunske tablice se nalaze u Anaconda3/lib/R/library/readxl/extdata/filename.xls

read_excel()

Funkcija read_excel() je od velike koristi kada se radi o otvaranju xls i xlsx ekstenzija.

Sintaksa je:

read_excel(PATH, sheet = NULL, range= NULL, col_names = TRUE)
arguments:
-PATH: Path where the excel is located
-sheet: Select the sheet to import. By default, all
-range: Select the range to import. By default, all non-null cells
-col_names: Select the columns to import. By default, all non-null columns

Možemo uvesti proračunske tablice iz biblioteke readxl i prebrojati broj stupaca u prvom listu.

# Store the path of `datasets.xlsx`
example <- readxl_example("datasets.xlsx")
# Import the spreadsheet
df <- read_excel(example)
# Count the number of columns
length(df)

Izlaz

## [1] 5

excel_sheets()

Datoteka datasets.xlsx sastoji se od 4 lista. Pomoću funkcije excel_sheets() možemo saznati koji su listovi dostupni u radnoj knjizi

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

Izlaz

[1] "iris"     "mtcars"   "chickwts" "quakes"

Ako radni list uključuje mnogo listova, lako je odabrati određeni list pomoću argumenata lista. Možemo odrediti naziv lista ili indeks lista. Možemo provjeriti vraćaju li obje funkcije isti izlaz s identical().

example <- readxl_example("datasets.xlsx")
quake <- read_excel(example, sheet = "quakes")
quake_1 <-read_excel(example, sheet = 4)
identical(quake, quake_1)

Izlaz

## [1] TRUE

Možemo kontrolirati koje će ćelije čitati na 2 načina

  1. Koristite argument n_max za vraćanje n redaka
  2. Koristite argument raspona u kombinaciji s cell_rows ili cell_cols

Na primjer, postavili smo n_max jednako 5 za uvoz prvih pet redaka.

# Read the first five row: with header
iris <-read_excel(example, n_max =5, col_names =TRUE)

Excel_Sheets

Ako promijenimo col_names u FALSE, R automatski stvara zaglavlja.

# Read the first five row: without header
iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)

iris_bez_zaglavlja

U podatkovnom okviru iris_no_header, R je stvorio pet novih varijabli pod nazivom X__1, X__2, X__3, X__4 i X__5

Excel_Sheets

Također možemo koristiti raspon argumenata za odabir redaka i stupaca u proračunskoj tablici. U donjem kodu koristimo excel stil za odabir raspona od A1 do B5.

# Read rows A1 to B5
example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)
dim(example_1)

Izlaz

## [1] 4 2

Vidimo da primjer_1 vraća 4 retka s 2 stupca. Skup podataka ima zaglavlje, zbog čega je dimenzija 4×2.

Excel_Sheets

U drugom primjeru koristimo funkciju cell_rows() koja kontrolira raspon redaka za vraćanje. Ako želimo uvesti retke od 1 do 5, možemo postaviti cell_rows(1:5). Imajte na umu da cell_rows(1:5) vraća isti izlaz kao cell_rows(5:1).

# Read rows 1 to 5
example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)			
dim(example_2)

Izlaz

## [1] 4 5

Međutim, primjer_2 je matrica 4×5. Skup podataka šarenice ima 5 stupaca sa zaglavljem. Vraćamo prva četiri retka sa zaglavljem svih stupaca

Excel_Sheets

U slučaju da želimo uvesti retke koji ne počinju prvim redom, moramo uključiti col_names = FALSE. Ako koristimo range = cell_rows(2:5), postaje očito da naš podatkovni okvir više nema zaglavlje.

iris_row_with_header <-read_excel(example, range =cell_rows(2:3), col_names=TRUE)
iris_row_no_header <-read_excel(example, range =cell_rows(2:3),col_names =FALSE)

Excel_Sheets

We can select the columns with the letter, like in Excel.
# Select columns A and B
col <-read_excel(example, range =cell_cols("A:B"))
dim(col)

Izlaz

## [1] 150   2

Napomena: raspon = cell_cols(“A:B”), vraća izlaz svih ćelija s vrijednošću koja nije nula. Skup podataka sadrži 150 redaka, stoga read_excel() vraća retke do 150. To se potvrđuje funkcijom dim().

read_excel() vraća NA kada se u ćeliji pojavi simbol bez numeričke vrijednosti. Kombinacijom dviju funkcija možemo izračunati broj vrijednosti koje nedostaju

  1. iznos
  2. je.na

Evo koda

iris_na <-read_excel(example, na ="setosa")
sum(is.na(iris_na))

Izlaz

## [1] 50

Nedostaje nam 50 vrijednosti, a to su redovi koji pripadaju vrsti setosa.

Uvoz podataka iz drugog statističkog softvera

Uvest ćemo različite formate datoteka s paketom Heaven. Ovaj paket podrške SAS, STATA i SPSS softver. Sljedeću funkciju možemo koristiti za otvaranje različitih vrsta skupova podataka, ovisno o ekstenziji datoteke:

  • SAS: read_sas()
  • STATA: read_dta() (ili read_stata(), koji su identični)
  • SPSS: read_sav() ili read_por(). Moramo provjeriti proširenje

Potreban je samo jedan argument unutar ove funkcije. Moramo znati PATH gdje je datoteka pohranjena. To je to, spremni smo za otvaranje svih datoteka iz SAS, STATA i SPSS. Ove tri funkcije prihvaćaju i URL.

library(haven)

utočište dolazi s conda r-essential inače idite na link ili u terminalu conda install -c conda-forge r-haven

Pročitaj sas

Za naš primjer koristit ćemo skup podataka o prijemu iz IDRE-a.

PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'
df <- read_sas(PATH_sas)
head(df)

Izlaz

## # A tibble: 6 x 4
##   ADMIT   GRE   GPA  RANK
##   <dbl> <dbl> <dbl> <dbl>
## 1     0   380  3.61     3
## 2     1   660  3.67     3
## 3     1   800  4.00     1
## 4     1   640  3.19     4
## 5     0   520  2.93     4
## 6     1   760  3.00     2

Pročitaj STATA

Za STATA podatkovne datoteke možete koristiti read_dta(). Koristimo potpuno isti skup podataka, ali pohranjujemo u .dta datoteku.

PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'
df <- read_dta(PATH_stata)
head(df)

Izlaz

## # A tibble: 6 x 4				
##   admit   gre   gpa  rank				
##   <dbl> <dbl> <dbl> <dbl>				
## 1     0   380  3.61     3				
## 2     1   660  3.67     3				
## 3     1   800  4.00     1				
## 4     1   640  3.19     4				
## 5     0   520  2.93     4				
## 6     1   760  3.00     2

Čitajte SPSS

Za otvaranje SPSS datoteke koristimo funkciju read_sav(). Ekstenzija datoteke ".sav"

PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'
df <- read_sav(PATH_spss)
head(df)

Izlaz

## # A tibble: 6 x 4				
##   admit   gre   gpa  rank				
##   <dbl> <dbl> <dbl> <dbl>				
## 1     0   380  3.61     3				
## 2     1   660  3.67     3			
## 3     1   800  4.00     1				
## 4     1   640  3.19     4				
## 5     0   520  2.93     4				
## 6     1   760  3.00     2

Najbolji primjeri iz prakse za uvoz podataka

Kada želimo uvesti podatke u R, korisno je implementirati sljedeći kontrolni popis. To će olakšati točan uvoz podataka u R:

  • Tipičan format za proračunsku tablicu je korištenje prvih redaka kao zaglavlja (obično naziv varijable).
  • Izbjegavajte imenovanje skupa podataka s praznim mjestima; može dovesti do tumačenja kao zasebne varijable. Umjesto toga, radije upotrijebite '_' ili '-.'
  • Poželjna su kratka imena
  • Nemojte uključivati ​​simbol u ime: npr. tečaj_valute_$_€ nije točan. Radije ga nazovite: exchange_rate_dollar_euro
  • Koristite NA za vrijednosti koje nedostaju inače; moramo kasnije očistiti format.

Rezime

Sljedeća tablica sažima funkciju koju treba koristiti za uvoz različitih vrsta datoteka u R. Prvi stupac navodi biblioteku povezanu s funkcijom. Zadnji stupac odnosi se na zadani argument.

Knjižnica Cilj funkcija Zadani argumenti
utils Pročitajte CSV datoteku pročitaj.csv() datoteka, zaglavlje =,TRUE, sep = “,”
readxl Pročitajte EXCEL datoteku read_excel() put, raspon = NULL, imena_kolaca = TRUE
utočište Pročitaj SAS datoteku read_sas() put
utočište Pročitaj STATA datoteku read_stata() put
utočište Pročitajte SPSS datoteku read_sav() put

Sljedeća tablica prikazuje različite načine uvoza odabira pomoću funkcije read_excel().

funkcija Cilj argumenti
read_excel() Pročitajte n redaka n_max = 10
Odaberite retke i stupce kao u excelu raspon = “A1:D10”
Odaberite retke s indeksima raspon= redovi_ćelija(1:3)
Odaberite stupce sa slovima raspon = cell_cols(“A:C”)