Импортиране на данни в R: Прочетете CSV, Excel, SPSS, Stata, SAS файлове

Съдържание:

Anonim

Данните могат да съществуват в различни формати. За всеки формат R има специфична функция и аргумент. Този урок обяснява как да импортирате данни в R.

В този урок ще научите

  • Прочетете CSV
  • Прочетете Excel файлове
  • readxl_example ()
  • read_excel ()
  • excel_sheets ()
  • Импортиране на данни от друг статистически софтуер
  • Прочетете sas
  • Прочетете STATA
  • Прочетете SPSS
  • Най-добри практики за импортиране на данни

Прочетете CSV

Един от най-широко съхраняваните данни е файловите формати .csv (стойности, разделени със запетая). R зарежда масив от библиотеки по време на стартиране, включително пакета utils. Този пакет е удобен за отваряне на csv файлове, комбинирани с функцията read.csv (). Ето синтаксиса за read.csv

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

Аргумент :

  • файл : ПЪТ, където се съхранява файлът
  • заглавка : потвърдете дали файлът има заглавка или не, по подразбиране заглавката е настроена на TRUE
  • sep : символът, използван за разделяне на променливата. По подразбиране, `,`.

Ще прочетем името на файла с данни mtcats. CSV файлът се съхранява онлайн. Ако вашият .csv файл се съхранява локално, можете да замените PATH вътре в кодовия фрагмент. Не забравяйте да го увиете вътре “. PATH трябва да бъде стойност на низ.

За потребителя на mac пътят за папката за изтегляне е:

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

За потребител на Windows:

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

Имайте предвид, че винаги трябва да посочваме разширението на името на файла.

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

Изход:

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

Изход:

## [1] "factor"

R по подразбиране връща стойности на символи като фактор. Можем да изключим тази настройка, като добавим 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)

Изход:

## [1] "character"

Класът за променливата X вече е символ.

Прочетете Excel файлове

Файловете в Excel са много популярни сред анализаторите на данни. Електронните таблици са лесни за работа и са гъвкави. R е оборудван с библиотека readxl за импортиране на електронна таблица на Excel.

Използвайте този код

require(readxl)

за да проверите дали readxl е инсталиран във вашето устройство. Ако инсталирате r с r-conda-essential, библиотеката вече е инсталирана. Трябва да видите в командния прозорец:

Изход:

Loading required package: readxl. 

Ако пакетът не излезе, можете да го инсталирате с библиотеката conda или в терминала, използвайте conda install -c mittner r-readxl.

Използвайте следната команда, за да заредите библиотеката за импортиране на Excel файлове.

library(readxl)

readxl_example ()

По време на този урок използваме примерите, включени в пакета readxl.

Използвайте код

readxl_example()

за да видите всички налични електронни таблици в библиотеката.

За да проверите местоположението на електронната таблица с име clippy.xls, просто използване

readxl_example("geometry.xls")

Ако инсталирате R с conda, електронните таблици се намират в Anaconda3 / lib / R / library / readxl / extdata / filename.xls

read_excel ()

Функцията read_excel () е от голяма полза, когато става въпрос за отваряне на xls и xlsx разширение.

Синтаксисът е:

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

Можем да импортираме електронните таблици от библиотеката readxl и да преброим броя на колоните в първия лист.

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

Изход:

## [1] 5

excel_sheets ()

Файлът datasets.xlsx се състои от 4 листа. Можем да разберем кои листове са налични в работната книга, като използваме функцията excel_sheets ()

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

Изход:

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

Ако работният лист включва много листове, лесно е да изберете определен лист, като използвате аргументите на листа. Можем да посочим името на листа или индекса на листа. Можем да проверим дали и двете функции връщат един и същ изход с идентичен ().

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

Изход:

## [1] TRUE

Можем да контролираме кои клетки да четем по 2 начина

  1. Използвайте аргумент n_max, за да върнете n редове
  2. Използвайте аргумент диапазон, комбиниран с cell_rows или cell_cols

Например, задаваме n_max равен на 5, за да импортираме първите пет реда.

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

Ако променим col_names на FALSE, R автоматично създава заглавките.

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

iris_no_header

В рамката за данни iris_no_header, R създаде пет нови променливи с имена X__1, X__2, X__3, X__4 и X__5

Също така можем да използваме диапазона от аргументи, за да изберем редове и колони в електронната таблица. В кода по-долу използваме стила на excel, за да изберем диапазона от A1 до B5.

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

Изход:

## [1] 4 2

Виждаме, че example_1 връща 4 реда с 2 колони. Наборът от данни има заглавна част, поради която размерът е 4x2.

Във втория пример използваме функцията cell_rows (), която контролира диапазона от редове за връщане. Ако искаме да импортираме редовете от 1 до 5, можем да зададем клетъчни стрелки (1: 5). Обърнете внимание, че cell_rows (1: 5) връща същия изход като cell_rows (5: 1).

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

Изход:

## [1] 4 5

Пример_2 обаче е матрица 4x5. Наборът от данни на ириса има 5 колони с хедър. Връщаме първите четири реда с хедър на всички колони

В случай, че искаме да импортираме редове, които не започват от първия ред, трябва да включим col_names = FALSE. Ако използваме range = cell_rows (2: 5), става очевидно, че нашата рамка с данни вече няма заглавка.

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)

Изход:

## [1] 150 2 

Забележка: range = cell_cols ("A: B"), връща изхода на всички клетки с ненулева стойност. Наборът от данни съдържа 150 реда, следователно read_excel () връща редове до 150. Това се проверява с функцията dim ().

read_excel () връща NA, когато в клетката се появи символ без числова стойност. Можем да преброим броя на липсващите стойности с комбинацията от две функции

  1. сума
  2. е.на

Ето кода

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

Изход:

## [1] 50

Липсват ни 50 стойности, които са редовете, принадлежащи на вида setosa.

Импортиране на данни от друг статистически софтуер

Ще импортираме различен файлов формат с пакета небе. Този пакет поддържа софтуери SAS, STATA и SPSS. Можем да използваме следната функция за отваряне на различни типове набори от данни, според разширението на файла:

  • SAS: read_sas ()
  • STATA: read_dta () (или read_stata (), които са идентични)
  • SPSS: read_sav () или read_por (). Трябва да проверим разширението

В рамките на тези функции се изисква само един аргумент. Трябва да знаем ПЪТЯ, където се съхранява файлът. Това е всичко, готови сме да отворим всички файлове от SAS, STATA и SPSS. Тези три функции приемат и URL.

library(haven)

пристанището идва с conda r-съществено, в противен случай отидете на връзката или в терминала conda install -c conda-forge r-haven

Прочетете sas

За нашия пример ще използваме набор от данни за прием от IDRE.

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

Изход:

## # 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

Прочетете STATA

За STATA файлове с данни можете да използвате read_dta (). Използваме абсолютно същия набор от данни, но съхраняваме във .dta файл.

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

Изход:

## # 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

Прочетете SPSS

Използваме функцията read_sav (), за да отворим SPSS файл. Файловото разширение ".sav"

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

Изход:

## # 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

Най-добри практики за импортиране на данни

Когато искаме да импортираме данни в R, е полезно да приложим следния контролен списък. Това ще улесни правилното импортиране на данни в R:

  • Типичният формат за електронна таблица е да се използват първите редове като заглавка (обикновено име на променливи).
  • Избягвайте да назовавате набор от данни с празни интервали; може да доведе до тълкуване като отделна променлива. Като алтернатива, предпочитайте да използвате '_' или '-.'
  • Предпочитат се кратки имена
  • Не включвайте символа в името: т.е.: exchange_rate _ $ _ € не е правилен. Предпочитам да го наименувам: exchange_rate_dollar_euro
  • Използвайте NA за липсващи стойности в противен случай; трябва да почистим формата по-късно.

Обобщение

Следващата таблица обобщава функцията, която да се използва за импортиране на различни типове файлове в R. В първата колона се посочва библиотеката, свързана с функцията. Последната колона се отнася до аргумента по подразбиране.

Библиотека

Обективен

Функция

Аргументи по подразбиране

утили

Прочетете CSV файл

read.csv ()

файл, заглавка =, ИСТИНА, сеп = ","

readxl

Прочетете EXCEL файла

read_excel ()

път, диапазон = NULL, col_names = TRUE

убежище

Прочетете SAS файла

read_sas ()

път

убежище

Прочетете файла STATA

read_stata ()

път

убежище

Прочетете SPSS file

read_sav ()

път

Следващата таблица показва различните начини за импортиране на селекция с функция read_excel ().

Функция

Цели

Аргументи

read_excel ()

Прочетете n броя редове

n_max = 10

Изберете редове и колони като в Excel

range = "A1: D10"

Изберете редове с индекси

диапазон = клетъчни стрелки (1: 3)

Изберете колони с букви

range = cell_cols ("A: C")