Data kan finnas i olika format. För varje format har R en specifik funktion och ett argument. Denna handledning förklarar hur man importerar data till R.
I den här handledningen lär du dig
- Läs CSV
- Läs Excel-filer
- readxl_example ()
- read_excel ()
- excel_sheets ()
- Importera data från annan statistisk programvara
- Läs sas
- Läs STATA
- Läs SPSS
- Bästa metoder för dataimport
Läs CSV
En av de vanligaste datalagren är filformaten .csv (kommaavgränsade värden). R laddar en rad bibliotek under start, inklusive utils-paketet. Detta paket är bekvämt att öppna csv-filer i kombination med funktionen read.csv (). Här är syntaxen för read.csv
read.csv(file, header = TRUE, sep = ",")
Argument :
- fil : PATH där filen lagras
- rubrik : bekräfta om filen har en rubrik eller inte, som standard är rubriken inställd på SANT
- sep : symbolen som används för att dela upp variabeln. Som standard är `,`.
Vi kommer att läsa datafilnamnet mtcats. Csv-filen lagras online. Om din .csv-fil lagras lokalt kan du byta ut PATH inuti kodavsnittet. Glöm inte att sätta in den inuti ''. PATH måste vara ett strängvärde.
För Mac-användare är sökvägen för nedladdningsmappen:
"/Users/USERNAME/Downloads/FILENAME.csv"
För Windows-användare:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Observera att vi alltid ska ange filnamnstillägget.
- .csv
- .xlsx
- .Text
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <- read.csv(PATH, header = TRUE, sep = ',')length(df)
Produktion:
## [1] 12
class(df$X)
Produktion:
## [1] "factor"
R returnerar som standard teckenvärden som faktor. Vi kan stänga av den här inställningen genom att lägga till 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)
Produktion:
## [1] "character"
Klassen för variabeln X är nu ett tecken.
Läs Excel-filer
Excel-filer är mycket populära bland dataanalytiker. Kalkylark är enkla att arbeta med och flexibla. R är utrustad med ett bibliotek readxl för att importera Excel-kalkylblad.
Använd den här koden
require(readxl)
för att kontrollera om readxl är installerat i din maskin. Om du installerar r med r-conda-essential är biblioteket redan installerat. Du bör se i kommandofönstret:
Produktion:
Loading required package: readxl.
Om paketet inte avslutas kan du installera det med conda-biblioteket eller i terminalen, använd conda install -c mittner r-readxl.
Använd följande kommando för att ladda biblioteket för att importera Excel-filer.
library(readxl)
readxl_example ()
Vi använder exemplen som ingår i paketet readxl under denna handledning.
Använd kod
readxl_example()
för att se alla tillgängliga kalkylark i biblioteket.
För att kontrollera platsen för kalkylbladet med namnet clippy.xls, enkel användning
readxl_example("geometry.xls")
Om du installerar R med konda finns kalkylarken i Anaconda3 / lib / R / bibliotek / readxl / extdata / filnamn.xls
read_excel ()
Funktionen read_excel () är till stor nytta när det gäller att öppna xls och xlsx extention.
Syntaksen är:
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
Vi kan importera kalkylarken från readxl-biblioteket och räkna antalet kolumner i det första arket.
# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)
Produktion:
## [1] 5
excel_sheets ()
Filen datasets.xlsx består av fyra ark. Vi kan ta reda på vilka ark som finns i arbetsboken genom att använda funktionen excel_sheets ()
example <- readxl_example("datasets.xlsx")excel_sheets(example)
Produktion:
[1] "iris" "mtcars" "chickwts" "quakes"
Om ett kalkylblad innehåller många ark är det enkelt att välja ett visst ark med hjälp av arkargumenten. Vi kan ange namnet på arket eller arkindexet. Vi kan verifiera om båda funktionerna returnerar samma utdata med identisk ().
example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)
Produktion:
## [1] TRUE
Vi kan kontrollera vilka celler som ska läsas på två sätt
- Använd argumentet n_max för att returnera n rader
- Använd intervallargument kombinerat med cellrader eller cellkolor
Till exempel ställer vi in n_max är lika med 5 för att importera de första fem raderna.
# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)
Om vi byter kolumnamn till FALSE skapar R rubrikerna automatiskt.
# Read the first five row: without headeriris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
I dataramen iris_no_header skapade R fem nya variabler med namnet X__1, X__2, X__3, X__4 och X__5
Vi kan också använda argumentintervallet för att välja rader och kolumner i kalkylarket. I koden nedan använder vi Excel-stilen för att välja intervallet A1 till B5.
# Read rows A1 to B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)
Produktion:
## [1] 4 2
Vi kan se att exempel_1 returnerar 4 rader med två kolumner. Datauppsättningen har rubrik, att anledningen till att dimensionen är 4x2.
I det andra exemplet använder vi funktionen cell_rows () som styr raden som ska returneras. Om vi vill importera raderna 1 till 5 kan vi ställa in cellrader (1: 5). Observera att cellrader (1: 5) returnerar samma utdata som cellrader (5: 1).
# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)
Produktion:
## [1] 4 5
Exemplet_2 är dock en 4x5 matris. Iris-datasetet har 5 kolumner med rubrik. Vi returnerar de första fyra raderna med rubrik för alla kolumner
Om vi vill importera rader som inte börjar vid första raden måste vi inkludera kol_namn = FALSKT. Om vi använder range = cell_rows (2: 5) blir det uppenbart att vår dataram inte har rubrik längre.
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)
Produktion:
## [1] 150 2
Obs: intervall = cell_cols ("A: B"), returnerar alla celler med ett icke-nollvärde. Datauppsättningen innehåller 150 rader, därför returnerar read_excel () rader upp till 150. Detta verifieras med dim () -funktionen.
read_excel () returnerar NA när en symbol utan numeriskt värde visas i cellen. Vi kan räkna antalet värden som saknas med kombinationen av två funktioner
- belopp
- is.na
Här är koden
iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))
Produktion:
## [1] 50
Vi saknar 50 värden, vilka är raderna som tillhör setosa-arten.
Importera data från annan statistisk programvara
Vi importerar olika filformat med himmelpaketet. Detta paket stöder programvara SAS, STATA och SPSS. Vi kan använda följande funktion för att öppna olika typer av dataset, beroende på filtillägget:
- SAS: read_sas ()
- STATA: read_dta () (eller read_stata (), som är identiska)
- SPSS: read_sav () eller read_por (). Vi måste kontrollera tillägget
Endast ett argument krävs inom denna funktion. Vi måste känna till PATH där filen lagras. Det är det, vi är redo att öppna alla filer från SAS, STATA och SPSS. Dessa tre funktioner accepterar också en URL.
library(haven)
haven kommer med conda r-essential annars gå till länken eller i terminalen conda installera -c conda-forge r-haven
Läs sas
För vårt exempel ska vi använda antagningsdataset från IDRE.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'df <- read_sas(PATH_sas)head(df)
Produktion:
## # 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
Läs STATA
För STATA-datafiler kan du använda read_dta (). Vi använder exakt samma dataset men lagrar i .dta-filen.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'df <- read_dta(PATH_stata)head(df)
Produktion:
## # 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
Läs SPSS
Vi använder read_sav () -funktionen för att öppna en SPSS-fil. Filändelsen ".sav"
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'df <- read_sav(PATH_spss)head(df)
Produktion:
## # 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
Bästa metoder för dataimport
När vi vill importera data till R är det användbart att implementera följande checklista. Det gör det enkelt att importera data korrekt till R:
- Det typiska formatet för ett kalkylblad är att använda de första raderna som rubrik (vanligtvis variabelnamn).
- Undvik att namnge en dataset med tomma mellanslag. det kan leda till tolkning som en separat variabel. Alternativt föredrar du att använda '_' eller '-.'
- Korta namn föredras
- Inkludera inte symbolen i namnet: dvs: exchange_rate _ $ _ € är inte korrekt. Föredra att namnge det: exchange_rate_dollar_euro
- Använd NA för saknade värden annars; vi måste rengöra formatet senare.
Sammanfattning
Följande tabell sammanfattar funktionen som ska användas för att importera olika filtyper i R. I kolumnen anges biblioteket relaterat till funktionen. Den sista kolumnen hänvisar till standardargumentet.
Bibliotek |
Mål |
Fungera |
Standardargument |
---|---|---|---|
verktyg |
Läs CSV-fil |
read.csv () |
fil, rubrik =, SANT, sep = "," |
readxl |
Läs EXCEL-filen |
read_excel () |
sökväg, intervall = NULL, kol_namn = SANT |
hamn |
Läs SAS-filen |
read_sas () |
väg |
hamn |
Läs STATA-filen |
read_stata () |
väg |
hamn |
Läs SPSS fille |
read_sav () |
väg |
Följande tabell visar de olika sätten att importera ett val med funktionen read_excel ().
Fungera |
Mål |
Argument |
---|---|---|
read_excel () |
Läs n antal rader |
n_max = 10 |
Välj rader och kolumner som i Excel |
intervall = "A1: D10" |
|
Välj rader med index |
intervall = cellrader (1: 3) |
|
Välj kolumner med bokstäver |
intervall = cell_cols ("A: C") |