Данные могут существовать в различных форматах. Для каждого формата R имеет определенную функцию и аргумент. В этом руководстве объясняется, как импортировать данные в R.
В этом руководстве вы узнаете
- Прочитать CSV
- Читать файлы Excel
- readxl_example ()
- read_excel ()
- excel_sheets ()
- Импорт данных из другого статистического программного обеспечения
- Читать sas
- Прочитать СТАТУ
- Читать SPSS
- Лучшие практики для импорта данных
Прочитать CSV
Одним из наиболее распространенных хранилищ данных является формат файлов .csv (значения, разделенные запятыми). R загружает массив библиотек во время запуска, включая пакет utils. Этот пакет удобен для открытия файлов csv в сочетании с функцией read.csv (). Вот синтаксис для read.csv
read.csv(file, header = TRUE, sep = ",")
Аргумент :
- файл : ПУТЬ, где хранится файл
- заголовок : подтвердите, имеет ли файл заголовок или нет, по умолчанию для заголовка установлено значение ИСТИНА
- 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 по умолчанию возвращает символьные значения как Factor. Мы можем отключить этот параметр, добавив 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"
Если рабочий лист включает в себя много листов, легко выбрать конкретный лист с помощью аргументов листа. Мы можем указать имя листа или индекс листа. Мы можем проверить, возвращают ли обе функции один и тот же результат с помощью identify ().
example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)
Выход:
## [1] TRUE
Мы можем контролировать, какие ячейки читать, двумя способами
- Используйте аргумент 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, мы можем установить cell_rows (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
Однако example_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, когда в ячейке появляется символ без числового значения. Мы можем подсчитать количество пропущенных значений с помощью комбинации двух функций
- сумма
- is.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)
haven поставляется с conda r-essential, в противном случае перейдите по ссылке или в терминале 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 вы можете использовать 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 () |
файл, заголовок =, ИСТИНА, sep = "," |
readxl |
Прочитать файл EXCEL |
read_excel () |
путь, диапазон = NULL, col_names = TRUE |
убежище |
Прочитать файл SAS |
read_sas () |
дорожка |
убежище |
Прочитать файл STATA |
read_stata () |
дорожка |
убежище |
Читать SPSS fille |
read_sav () |
дорожка |
В следующей таблице показаны различные способы импорта выделения с помощью функции read_excel ().
Функция |
Цели |
Аргументы |
---|---|---|
read_excel () |
Прочитать n количество строк |
n_max = 10 |
Выберите строки и столбцы, как в Excel |
range = "A1: D10" |
|
Выбрать строки с индексами |
диапазон = строки_ячеек (1: 3) |
|
Выберите столбцы с буквами |
диапазон = cell_cols ("A: C") |