Gegevens kunnen in verschillende formaten voorkomen. Voor elk formaat heeft R een specifieke functie en argument. In deze tutorial wordt uitgelegd hoe u gegevens in R.
In deze tutorial leer je
- Lees CSV
- Lees Excel-bestanden
- readxl_example ()
- read_excel ()
- excel_sheets ()
- Importeer gegevens uit andere statistische software
- Lees sas
- Lees STATA
- Lees SPSS
- Praktische tips voor het importeren van gegevens
Lees CSV
Een van de meest gebruikte gegevensopslag zijn de .csv-bestandsindelingen (door komma's gescheiden waarden). R laadt een reeks bibliotheken tijdens het opstarten, inclusief het utils-pakket. Dit pakket is handig om csv-bestanden te openen in combinatie met de functie reading.csv (). Hier is de syntaxis voor read.csv
read.csv(file, header = TRUE, sep = ",")
Argument :
- bestand : PATH waar het bestand is opgeslagen
- header : bevestig of het bestand een header heeft of niet, standaard is de header ingesteld op TRUE
- sep : het symbool dat wordt gebruikt om de variabele te splitsen. Standaard is `,`.
We lezen de naam van het gegevensbestand mtcats. Het csv-bestand wordt online opgeslagen. Als uw .csv-bestand lokaal is opgeslagen, kunt u het PATH in het codefragment vervangen. Vergeet het niet in te pakken ''. Het PATH moet een tekenreekswaarde zijn.
Voor Mac-gebruikers is het pad voor de downloadmap:
"/Users/USERNAME/Downloads/FILENAME.csv"
Voor Windows-gebruiker:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Merk op dat we altijd de extensie van de bestandsnaam moeten specificeren.
- .csv
- .xlsx
- .tekst
-
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <- read.csv(PATH, header = TRUE, sep = ',')length(df)
Uitgang:
## [1] 12
class(df$X)
Uitgang:
## [1] "factor"
R retourneert standaard tekenwaarden als Factor. We kunnen deze instelling uitschakelen door stringsAsFactors = FALSE toe te voegen.
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE)class(df$X)
Uitgang:
## [1] "character"
De klasse voor de variabele X is nu een teken.
Lees Excel-bestanden
Excel-bestanden zijn erg populair bij data-analisten. Spreadsheets zijn gemakkelijk om mee te werken en flexibel. R is uitgerust met een bibliotheek readxl om Excel-spreadsheet te importeren.
Gebruik deze code
require(readxl)
om te controleren of readxl op uw machine is geïnstalleerd. Als u r met r-conda-essential installeert, is de bibliotheek al geïnstalleerd. U zou in het opdrachtvenster moeten zien:
Uitgang:
Loading required package: readxl.
Als het pakket niet wordt afgesloten, kunt u het installeren met de conda-bibliotheek of in de terminal, gebruik conda install -c mittner r-readxl.
Gebruik de volgende opdracht om de bibliotheek te laden om Excel-bestanden te importeren.
library(readxl)
readxl_example ()
We gebruiken de voorbeelden die in het pakket readxl zijn opgenomen tijdens deze tutorial.
Gebruik code
readxl_example()
om alle beschikbare spreadsheets in de bibliotheek te zien.
Gebruik eenvoudig om de locatie van de spreadsheet met de naam clippy.xls te controleren
readxl_example("geometry.xls")
Als je R met conda installeert, bevinden de spreadsheets zich in Anaconda3 / lib / R / library / readxl / extdata / filename.xls
read_excel ()
De functie read_excel () is van groot nut als het gaat om het openen van xls en xlsx extentie.
De syntaxis is:
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
We kunnen de spreadsheets uit de readxl-bibliotheek importeren en het aantal kolommen in het eerste blad tellen.
# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)
Uitgang:
## [1] 5
excel_sheets ()
Het bestand datasets.xlsx is samengesteld uit 4 bladen. We kunnen uitzoeken welke bladen beschikbaar zijn in de werkmap door de functie excel_sheets () te gebruiken
example <- readxl_example("datasets.xlsx")excel_sheets(example)
Uitgang:
[1] "iris" "mtcars" "chickwts" "quakes"
Als een werkblad veel bladen bevat, is het gemakkelijk om een bepaald blad te selecteren met behulp van de bladargumenten. We kunnen de naam van het blad of de bladindex specificeren. We kunnen controleren of beide functies dezelfde uitvoer retourneren met identiek ().
example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)
Uitgang:
## [1] TRUE
We kunnen op twee manieren bepalen welke cellen moeten worden gelezen
- Gebruik het argument n_max om n rijen te retourneren
- Gebruik bereikargument in combinatie met cell_rows of cell_cols
We stellen bijvoorbeeld n_max gelijk aan 5 om de eerste vijf rijen te importeren.
# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)
Als we col_names veranderen in FALSE, maakt R de headers automatisch aan.
# Read the first five row: without headeriris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
In het dataframe iris_no_header heeft R vijf nieuwe variabelen gemaakt met de namen X__1, X__2, X__3, X__4 en X__5
We kunnen ook het argumentbereik gebruiken om rijen en kolommen in de spreadsheet te selecteren. In de onderstaande code gebruiken we de Excel-stijl om het bereik A1 tot B5 te selecteren.
# Read rows A1 to B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)
Uitgang:
## [1] 4 2
We kunnen zien dat voorbeeld_1 4 rijen met 2 kolommen retourneert. De dataset heeft een koptekst, dat de reden dat de dimensie 4x2 is.
In het tweede voorbeeld gebruiken we de functie cell_rows () die het bereik van rijen bepaalt dat moet worden geretourneerd. Als we de rijen 1 tot 5 willen importeren, kunnen we cell_rows (1: 5) instellen. Merk op dat cell_rows (1: 5) dezelfde uitvoer retourneert als cell_rows (5: 1).
# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)
Uitgang:
## [1] 4 5
Het voorbeeld_2 is echter een 4x5-matrix. De iris-dataset heeft 5 kolommen met koptekst. We retourneren de eerste vier rijen met de koptekst van alle kolommen
Als we rijen willen importeren die niet op de eerste rij beginnen, moeten we col_names = FALSE opnemen. Als we range = cell_rows (2: 5) gebruiken, wordt het duidelijk dat ons dataframe geen header meer heeft.
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)
Uitgang:
## [1] 150 2
Opmerking: bereik = cell_cols ("A: B"), retourneert uitvoer alle cellen met een niet-nulwaarde. De dataset bevat 150 rijen, daarom geeft read_excel () rijen tot 150 terug. Dit wordt geverifieerd met de functie dim ().
read_excel () geeft NA terug als een symbool zonder numerieke waarde in de cel verschijnt. We kunnen het aantal ontbrekende waarden tellen met de combinatie van twee functies
- som
- is.na
Hier is de code
iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))
Uitgang:
## [1] 50
Er ontbreken 50 waarden, dit zijn de rijen die tot de setosa-soort behoren.
Importeer gegevens uit andere statistische software
We zullen verschillende bestandsformaten importeren met het Heaven-pakket. Dit pakket ondersteunt SAS-, STATA- en SPSS-software. We kunnen de volgende functie gebruiken om verschillende soorten datasets te openen, afhankelijk van de extensie van het bestand:
- SAS: read_sas ()
- STATA: read_dta () (of read_stata (), die identiek zijn)
- SPSS: read_sav () of read_por (). We moeten de extensie controleren
Binnen deze functie is slechts één argument vereist. We moeten het PAD kennen waar het bestand is opgeslagen. Dat is alles, we zijn klaar om alle bestanden van SAS, STATA en SPSS te openen. Deze drie functies accepteren ook een URL.
library(haven)
haven komt met conda r-essential, anders ga je naar de link of in de terminal conda install -c conda-forge r-haven
Lees sas
Voor ons voorbeeld gaan we de toelatingsdataset van IDRE gebruiken.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'df <- read_sas(PATH_sas)head(df)
Uitgang:
## # 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
Lees STATA
Voor STATA-gegevensbestanden kunt u read_dta () gebruiken. We gebruiken exact dezelfde dataset, maar slaan op in een .dta-bestand.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'df <- read_dta(PATH_stata)head(df)
Uitgang:
## # 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
Lees SPSS
We gebruiken de functie read_sav () om een SPSS-bestand te openen. De bestandsextensie ".sav"
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'df <- read_sav(PATH_spss)head(df)
Uitgang:
## # 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
Praktische tips voor het importeren van gegevens
Als we gegevens in R willen importeren, is het handig om de volgende checklist te implementeren. Het maakt het gemakkelijk om gegevens correct in R te importeren:
- De typische indeling voor een spreadsheet is om de eerste rijen als koptekst te gebruiken (meestal de naam van de variabelen).
- Vermijd om een dataset een naam te geven met spaties; het kan leiden tot interpretatie als een aparte variabele. U kunt ook liever '_' of '-' gebruiken.
- Korte namen hebben de voorkeur
- Gebruik geen symbool in de naam: dat wil zeggen: exchange_rate _ $ _ € is niet correct. Geef het liever een naam: exchange_rate_dollar_euro
- Gebruik anders NA voor ontbrekende waarden; we moeten het formaat later opschonen.
Overzicht
De volgende tabel geeft een overzicht van de functie die moet worden gebruikt om verschillende soorten bestanden in R te importeren. In de eerste kolom staat de bibliotheek die aan de functie is gerelateerd. De laatste kolom verwijst naar het standaardargument.
Bibliotheek |
Objectief |
Functie |
Standaardargumenten |
---|---|---|---|
utils |
Lees CSV-bestand |
lees.csv () |
bestand, header =, TRUE, sep = "," |
readxl |
Lees het EXCEL-bestand |
read_excel () |
pad, bereik = NULL, kolomnamen = WAAR |
oase |
Lees het SAS-bestand |
read_sas () |
pad |
oase |
Lees STATA-bestand |
read_stata () |
pad |
oase |
Lees SPSS-bestand |
read_sav () |
pad |
De volgende tabel toont de verschillende manieren om een selectie te importeren met de functie read_excel ().
Functie |
Doelstellingen |
Argumenten |
---|---|---|
read_excel () |
Lees n aantal rijen |
n_max = 10 |
Selecteer rijen en kolommen zoals in Excel |
range = "A1: D10" |
|
Selecteer rijen met indexen |
bereik = cell_rows (1: 3) |
|
Selecteer kolommen met letters |
range = cell_cols ("A: C") |