Import dat do R: Čtení souborů CSV, Excel, SPSS, Stata, SAS

Obsah:

Anonim

Data mohou existovat v různých formátech. Pro každý formát má R specifickou funkci a argument. Tento kurz vysvětluje, jak importovat data do R.

V tomto výukovém programu se naučíte

  • Přečtěte si CSV
  • Čtení souborů aplikace Excel
  • readxl_example ()
  • read_excel ()
  • excel_sheets ()
  • Importujte data z jiného statistického softwaru
  • Přečtěte si sas
  • Přečtěte si STATA
  • Přečtěte si SPSS
  • Osvědčené postupy pro import dat

Přečtěte si CSV

Jedním z nejrozšířenějších úložišť dat jsou formáty souborů .csv (hodnoty oddělené čárkami). R načte během spouštění řadu knihoven, včetně balíčku utils. Tento balíček umožňuje pohodlné otevírání souborů CSV v kombinaci s funkcí reading.csv (). Zde je syntaxe pro read.csv

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

Argument :

  • file : PATH, kde je soubor uložen
  • záhlaví : potvrďte, zda soubor má záhlaví nebo ne, ve výchozím nastavení je záhlaví nastaveno na TRUE
  • sep : symbol použitý k rozdělení proměnné. Ve výchozím nastavení `,`.

Přečteme název datového souboru mtcats. Soubor CSV je uložen online. Pokud je váš soubor .csv uložen místně, můžete PATH uvnitř fragmentu kódu nahradit. Nezapomeňte to zabalit dovnitř``. PATH musí být řetězcová hodnota.

Pro uživatele systému Mac je cesta ke složce ke stažení:

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

Pro uživatele systému Windows:

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

Měli bychom vždy určit příponu názvu souboru.

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

Výstup:

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

Výstup:

## [1] "factor"

R ve výchozím nastavení vrací hodnoty znaků jako faktor. Toto nastavení můžeme vypnout přidáním 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)

Výstup:

## [1] "character"

Třída pro proměnnou X je nyní znak.

Čtení souborů aplikace Excel

Soubory Excel jsou mezi analytiky dat velmi oblíbené. S tabulkami se snadno pracuje a jsou flexibilní. R je vybaven knihovnou readxl pro import tabulky aplikace Excel.

Použijte tento kód

require(readxl)

zkontrolovat, zda je ve vašem stroji nainstalován readxl. Pokud nainstalujete r pomocí r-conda-essential, knihovna je již nainstalována. V příkazovém okně byste měli vidět:

Výstup:

Loading required package: readxl. 

Pokud se balíček neopustí, můžete jej nainstalovat pomocí knihovny conda nebo do terminálu, použijte conda install -c mittner r-readxl.

Pomocí následujícího příkazu načtěte knihovnu k importu souborů aplikace Excel.

library(readxl)

readxl_example ()

Během tohoto kurzu používáme příklady obsažené v balíčku readxl.

Použijte kód

readxl_example()

zobrazíte všechny dostupné tabulky v knihovně.

Chcete-li zkontrolovat umístění tabulky s názvem clippy.xls, jednoduše ji použijte

readxl_example("geometry.xls")

Pokud nainstalujete R s conda, tabulky se nacházejí v Anaconda3 / lib / R / library / readxl / extdata / filename.xls

read_excel ()

Funkce read_excel () je velmi užitečná, pokud jde o otevírání rozšíření xls a xlsx.

Syntaxe 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

Můžeme importovat tabulky z knihovny readxl a spočítat počet sloupců v prvním listu.

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

Výstup:

## [1] 5

excel_sheets ()

Soubor datasets.xlsx se skládá ze 4 listů. Pomocí funkce excel_sheets () můžeme zjistit, které listy jsou v sešitu k dispozici

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

Výstup:

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

Pokud list obsahuje mnoho listů, je snadné vybrat konkrétní list pomocí argumentů listu. Můžeme určit název listu nebo index listu. Můžeme ověřit, zda obě funkce vracejí stejný výstup pomocí shodné ().

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

Výstup:

## [1] TRUE

Můžeme řídit, jaké buňky mají číst, dvěma způsoby

  1. Použijte argument n_max k vrácení n řádků
  2. Použijte argument range v kombinaci s cell_rows nebo cell_cols

Například nastavíme n_max se rovná 5 pro import prvních pěti řádků.

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

Pokud změníme col_names na FALSE, R vytvoří záhlaví automaticky.

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

iris_no_header

V datovém rámci iris_no_header vytvořil R pět nových proměnných s názvem X__1, X__2, X__3, X__4 a X__5

Můžeme také použít rozsah argumentů k výběru řádků a sloupců v tabulce. V níže uvedeném kódu použijeme styl aplikace Excel k výběru rozsahu A1 až B5.

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

Výstup:

## [1] 4 2

Vidíme, že příklad_1 vrací 4 řádky se 2 sloupci. Datová sada má záhlaví, proto je dimenze 4x2.

Ve druhém příkladu použijeme funkci cell_rows (), která řídí rozsah řádků, které se mají vrátit. Pokud chceme importovat řádky 1 až 5, můžeme nastavit cell_rows (1: 5). Všimněte si, že cell_rows (1: 5) vrací stejný výstup jako cell_rows (5: 1).

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

Výstup:

## [1] 4 5

Příkladem_2 je však matice 4x5. Datová sada iris má 5 sloupců s hlavičkou. Vracíme první čtyři řádky s hlavičkou všech sloupců

V případě, že chceme importovat řádky, které nezačínají na prvním řádku, musíme zahrnout col_names = FALSE. Pokud použijeme range = cell_rows (2: 5), je zřejmé, že náš datový rámec již nemá záhlaví.

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)

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

Výstup:

## [1] 150 2 

Poznámka: range = cell_cols ("A: B"), vrátí výstup všech buněk s nenulovou hodnotou. Datová sada obsahuje 150 řádků, proto read_excel () vrací řádky až 150. To je ověřeno pomocí funkce dim ().

read_excel () vrací NA, když se v buňce objeví symbol bez číselné hodnoty. Počet chybějících hodnot můžeme spočítat kombinací dvou funkcí

  1. součet
  2. is.na

Tady je kód

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

Výstup:

## [1] 50

Chybí nám 50 hodnot, což jsou řádky patřící druhu setosa.

Importujte data z jiného statistického softwaru

S balíčkem nebe importujeme různé formáty souborů. Tento balíček podporuje software SAS, STATA a SPSS. Následující funkci můžeme použít k otevření různých typů datové sady podle přípony souboru:

  • SAS: read_sas ()
  • STATA: read_dta () (nebo read_stata (), které jsou identické)
  • SPSS: read_sav () nebo read_por (). Musíme zkontrolovat rozšíření

V rámci těchto funkcí je vyžadován pouze jeden argument. Potřebujeme znát PATH, kde je soubor uložen. To je vše, jsme připraveni otevřít všechny soubory ze SAS, STATA a SPSS. Tyto tři funkce akceptují také URL.

library(haven)

útočiště přichází s conda r-essential, jinak přejděte na odkaz nebo do terminálu conda install -c conda-forge r-útočník

Přečtěte si sas

Pro náš příklad použijeme datovou sadu pro přijetí od IDRE.

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

Výstup:

## # A tibble: 6 x 4## ADMIT GRE GPA RANK##    ## 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

Přečtěte si STATA

Pro datové soubory STATA můžete použít read_dta (). Používáme přesně stejnou datovou sadu, ale ukládáme do souboru .dta.

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

Výstup:

## # A tibble: 6 x 4## admit gre gpa rank##    ## 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

Přečtěte si SPSS

K otevření souboru SPSS používáme funkci read_sav (). Přípona souboru „.sav“

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

Výstup:

## # A tibble: 6 x 4## admit gre gpa rank##    ## 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

Osvědčené postupy pro import dat

Když chceme importovat data do R, je užitečné implementovat následující kontrolní seznam. Usnadní to správný import dat do R:

  • Typickým formátem tabulky je použití prvních řádků jako záhlaví (obvykle název proměnné).
  • Vyhněte se pojmenování datové sady s mezerami; může to vést k interpretaci jako samostatné proměnné. Alternativně upřednostňujte použití '_' nebo '-.'
  • Preferovány jsou krátké názvy
  • Nezahrnujte do názvu symbol: tj. Exchange_rate _ $ _ € není správné. Raději to pojmenujte: exchange_rate_dollar_euro
  • Jinak použijte NA pro chybějící hodnoty; musíme formát později vyčistit.

souhrn

Následující tabulka shrnuje funkci, která se má použít k importu různých typů souborů do R. Sloupec jeden uvádí knihovnu související s funkcí. Poslední sloupec odkazuje na výchozí argument.

Knihovna

Objektivní

Funkce

Výchozí argumenty

nástroje

Přečíst soubor CSV

read.csv ()

soubor, záhlaví =, PRAVDA, sep = ","

readxl

Přečtěte si soubor EXCEL

read_excel ()

cesta, rozsah = NULL, col_names = PRAVDA

útočiště

Přečíst soubor SAS

read_sas ()

cesta

útočiště

Přečtěte si soubor STATA

read_stata ()

cesta

útočiště

Přečtěte si SPSS fille

read_sav ()

cesta

Následující tabulka ukazuje různé způsoby importu výběru pomocí funkce read_excel ().

Funkce

Cíle

Argumenty

read_excel ()

Přečíst n počet řádků

n_max = 10

Vyberte řádky a sloupce jako v aplikaci Excel

range = "A1: D10"

Vyberte řádky s indexy

range = cell_rows (1: 3)

Vyberte sloupce s písmeny

range = cell_cols ("A: C")