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

Содержание:

Anonim

Данные могут существовать в различных форматах. Для каждого формата 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

Мы можем контролировать, какие ячейки читать, двумя способами

  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, мы можем установить 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, когда в ячейке появляется символ без числового значения. Мы можем подсчитать количество пропущенных значений с помощью комбинации двух функций

  1. сумма
  2. 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")