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

Data kan finnas i olika format. För varje format R har en specifik funktion och argument. Denna handledning förklarar hur du importerar data till R.

Läs CSV

En av de vanligaste datalagren är filformaten .csv (kommaseparerade värden). R laddar en uppsättning bibliotek under uppstarten, inklusive utils-paketet. Detta paket är praktiskt för att öppna csv-filer i kombination med funktionen reading.csv(). Här är syntaxen för read.csv

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

Argument:

  • fil: PATH där filen är lagrad
  • rubrik: bekräfta om filen har en rubrik eller inte, som standard är rubriken satt till TRUE
  • september: symbolen som används för att dela variabeln. Som standard är `,`.

Vi kommer att läsa datafilnamnet mtcats. Csv-filen lagras online. Om din .csv-fil är lagrad lokalt kan du ersätta PATH inuti kodavsnittet. Glöm inte att linda in den i ' '. PATH måste vara ett strängvärde.

För Mac-användare är sökvägen till nedladdningsmappen:

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

För Windows-användare:

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

Observera att vi alltid bör 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, som standard, returnerar 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. Kalkylblad är lätta 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 condan bibliotek 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 kalkylblad i biblioteket.

Läsxl_Exempel

För att kontrollera platsen för kalkylarket med namnet clippy.xls, enkel användning

readxl_example("geometry.xls")

Läsxl_Exempel

Om du installerar R med conda, finns kalkylbladen i Anaconda3/lib/R/library/readxl/extdata/filnamn.xls

read_excel()

Funktionen read_excel() är till stor nytta när det gäller att öppna xls och xlsx extension.

Syntaxen ä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 kalkylbladen 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 spreadsheet
df <- read_excel(example)
# Count the number of columns
length(df)

Produktion

## [1] 5

excel_sheets()

Filen datasets.xlsx består av 4 ark. Vi kan ta reda på vilka blad som är tillgängliga 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 styra 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 cell_rows eller cell_cols

Till exempel sätter vi n_max lika med 5 för att importera de första fem raderna.

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

Excel_Sheets

Om vi ​​ändrar kolnamn till FALSK, skapar R rubrikerna automatiskt.

# Read the first five row: without header
iris_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

Excel_Sheets

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 B5
example_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 2 kolumner. Datauppsättningen har rubrik, varför dimensionen är 4×2.

Excel_Sheets

I det andra exemplet använder vi funktionen cell_rows() som styr intervallet av rader som ska returneras. Om vi ​​vill importera raderna 1 till 5 kan vi ställa in cell_rows(1:5). Observera att cell_rows(1:5) returnerar samma utdata som 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)

Produktion

## [1] 4 5

Exempel_2 är dock en 4×5-matris. Irisdatauppsättningen har 5 kolumner med rubrik. Vi returnerar de fyra första raderna med rubrik för alla kolumner

Excel_Sheets

Om vi ​​vill importera rader som inte börjar på första raden måste vi inkludera kolnamn = FALSE. Om vi ​​använder range = cell_rows(2:5) blir det uppenbart att vår dataram inte har header 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)

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)

Produktion

## [1] 150   2

Obs: range = cell_cols(“A:B”), returnerar utdata från alla celler med icke-nullvä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 saknade värden med kombinationen av två funktioner

  1. summan
  2. is.na

Här är koden

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

Produktion

## [1] 50

Vi har 50 värden som saknas, vilket är raderna som tillhör setosaarten.

Importera data från annan statistisk programvara

Vi kommer att importera olika filformat med himmelpaketet. Detta paket stöder SAS, STATA och SPSS programvara. 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 förlängningen

Endast ett argument krävs inom dessa funktioner. Vi måste känna till PATH där filen är lagrad. Det var allt, vi är redo att öppna alla filer från SAS, STATA och SPSS. Dessa tre funktioner accepterar också en URL.

library(haven)

tillflyktsort kommer med conda r-väsentliga annars gå till länk eller i terminalen conda installera -c conda-forge r-haven

Läs sas

För vårt exempel kommer vi att använda antagningsdatasetet 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
##   <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

Läs STATA

För STATA-datafiler kan du använda read_dta(). Vi använder exakt samma datauppsättning 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				
##   <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

Läs SPSS

Vi använder funktionen read_sav() för att öppna en SPSS-fil. Filtillägget ".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				
##   <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

Bästa metoder för dataimport

När vi vill importera data till R är det användbart att implementera följande checklista. Det kommer att göra 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 datauppsättning med tomma mellanslag; det kan leda till tolkning som en separat variabel. Alternativt, föredrar att använda '_' eller '-.'
  • Korta namn är att föredra
  • Inkludera inte symbol i namnet: dvs: exchange_rate_$_€ är inte korrekt. Föredrar 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 typer av filer i R. Kolumnen ett anger biblioteket som är relaterat till funktionen. Den sista kolumnen hänvisar till standardargumentet.

Bibliotek Mål Funktion Standardargument
utils Läs CSV-fil read.csv() fil, rubrik =, TRUE, sep = ","
läsxl Läs EXCEL-filen read_excel() sökväg, intervall = NULL, kolnamn = TRUE
hamn Läs SAS-fil read_sas() bana
hamn Läs STATA-filen read_stata() bana
hamn Läs SPSS-filen read_sav() bana

Följande tabell visar de olika sätten att importera ett urval med read_excel()-funktionen.

Funktion 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 range= cell_rows(1:3)
Välj kolumner med bokstäver range = cell_cols(“A:C”)

Sammanfatta detta inlägg med: