Імпорт даних у 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 = ",")

Аргумент :

  • файл : PATH, де зберігається файл
  • заголовок : підтвердьте, чи файл має заголовок чи ні, за замовчуванням заголовок встановлений на TRUE
  • sep : символ, що використовується для розділення змінної. За замовчуванням `,`.

Ми прочитаємо ім'я файлу даних mtcats. Файл csv зберігається в Інтернеті. Якщо ваш файл .csv зберігається локально, ви можете замінити PATH всередині фрагмента коду. Не забудьте загорнути всередину ''. PATH має мати значення рядка.

Для користувача mac шлях до папки для завантаження:

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

Для користувачів Windows:

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

Зауважте, що ми завжди повинні вказувати розширення імені файлу.

  • .csv
  • .xlsx
  • .txt
  • ...
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

Ми можемо контролювати, які клітини читати, двома способами

  1. Використовуйте аргумент n_max, щоб повернути n рядків
  2. Використовуйте аргумент діапазону в поєднанні з рядками стільників або клітинками

Наприклад, ми встановлюємо 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)

haven поставляється з conda r-bitno, в іншому випадку перейдіть за посиланням або в терміналі 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:

  • Типовим форматом електронної таблиці є використання перших рядків як заголовка (як правило, ім'я змінних).
  • Намагайтеся не називати набір даних пробілами; це може призвести до інтерпретації як окремої змінної. В якості альтернативи, волійте використовувати '_' або '-.'
  • Кращі назви
  • Не вказуйте символ в назві: тобто: rate_rate _ $ _ € неправильний. Краще назвіть це: exchange_rate_dollar_euro
  • В іншому випадку використовуйте NA для відсутніх значень; нам потрібно очистити формат пізніше.

Резюме

Наступна таблиця узагальнює функцію, яка використовується для імпорту різних типів файлів у R. У першому стовпці вказана бібліотека, пов'язана з функцією. Останній стовпець посилається на аргумент за замовчуванням.

Бібліотека

Об’єктивна

Функція

Аргументи за замовчуванням

утилів

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

read.csv ()

файл, заголовок =, TRUE, sep = ","

readxl

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

read_excel ()

шлях, діапазон = NULL, col_names = TRUE

гавань

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

read_sas ()

шлях

гавань

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

read_stata ()

шлях

гавань

Прочитайте файл SPSS

read_sav ()

шлях

Наступна таблиця показує різні способи імпорту виділення за допомогою функції read_excel ().

Функція

Завдання

Аргументи

read_excel ()

Прочитайте n кількість рядків

n_max = 10

Виділіть рядки та стовпці, як у Excel

діапазон = "A1: D10"

Виділіть рядки з індексами

діапазон = рядки_клітинок (1: 3)

Виділіть стовпці з літерами

діапазон = комірки_ комірок ("A: C")