Данните могат да съществуват в различни формати. За всеки формат 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 начина
- Използвайте аргумент n_max, за да върнете n редове
- Използвайте аргумент диапазон, комбиниран с 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, когато в клетката се появи символ без числова стойност. Можем да преброим броя на липсващите стойности с комбинацията от две функции
- сума
- е.на
Ето кода
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") |