Importera data till R: Läs CSV, Excel, SPSS, Stata, SAS-filer

Innehållsförteckning:

Anonim

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

  1. Använd argumentet n_max för att returnera n rader
  2. 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

  1. belopp
  2. 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")