Импорт данных в R

Цели

  • Импорт файла csv и excel
  • Доступ к строкам и столбцам из набора данных
  • Доступ к встроенному набору данных R

Оглавление

  • О наборе данных
  • Чтение CSV-файлов
  • Чтение файлов Excel
  • Доступ к строкам и столбцам из набора данных
  • Доступ к встроенным наборам данных в R

О наборе данных

Набор данных о фильмах

Здесь у нас есть набор данных, который включает одну строку для каждого фильма с несколькими столбцами для каждой характеристики фильма:

name — название фильма.

year — год выхода фильма.

length_min — продолжительность фильма (минуты).

genre — Жанр фильма.

average_rating — средний рейтинг на IMDB

cost_millions — стоимость производства фильма (в миллионах долларов США).

иностранный – это фильм зарубежный (1) или отечественный (0)?

age_restriction — возрастное ограничение для фильма.

Давайте узнаем, как импортировать и считывать данные из двух распространенных типов файлов, используемых для хранения табличных данных (когда данные хранятся в таблице или электронной таблице).

  • CSV-файлы (.csv)
  • Файлы Excel (.xls или .xlsx)

Для начала нам нужно загрузить данные!

Загрузить данные (данные размещены в Интернете)

# CSV file
download.file("https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-RP0101EN-Coursera/v2/dataset/movies-db.csv", 
              destfile="movies-db.csv")

# XLS file
download.file("https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-RP0101EN-Coursera/v2/dataset/movies-db.xls", 
              destfile="movies-db.xls")

Теперь у нас есть:

фильмы-db.csv
фильмы-db.xls

  1. Чтение файлов CSV в R: Чтобы прочитать файлы CSV в R, мы используем основную функцию read.csv.
# Load the CSV table into the my_data variable.
my_data <- read.csv("movies-db.csv")
my_data

# Print out the first six rows of my_data
head(my_data)

R предоставляет нам функцию, которая суммирует свойства всей таблицы, называемую str. Давайте попробуем.

# Prints out the structure of your table.
str(my_data)

2. Чтение файлов Excel

# Load the "readxl" library into the R environment.
library(readxl)

Теперь, когда у нас есть готовая библиотека и ее функции, мы можем перейти непосредственно к чтению файла. В readxl есть функция read_excel, которая делает всю работу за нас. Вы можете использовать его следующим образом:

# Read data from the XLS file and attribute the table to the my_excel_data variable.
my_excel_data <- read_excel("movies-db.xls")

Поскольку my_excel_data теперь является фреймом данных в R, очень похожим на тот, который мы создали из CSV-файла, к нему можно применить все нативные функции R, такие как head и str.

# Prints out the structure of your table.
# Tells you how many rows and columns there are, and the names and type of each column.
# This should be the very same as the other table we created, as they are the same dataset.
str(my_excel_data)

[Совет] Библиотека — это, по сути, набор различных классов и функций, которые используются для выполнения определенных операций. Вы можете установить и использовать библиотеки для добавления дополнительных функций, которые не включены в основные файлы R. Например, библиотека readxl добавляет функции для чтения данных из файлов Excel.

Важно знать, что существует множество других библиотек, которые можно использовать для самых разных целей. Также существует множество других библиотек для чтения файлов Excel — readxl — лишь одна из них.

3. Доступ к строкам и столбцам

Всякий раз, когда мы используем функции для чтения табличных данных в R, метод структурирования этих данных по умолчанию в среде R — использование фреймов данных — основной структуры данных R. Фреймы данных чрезвычайно универсальны, и R предоставляет нам множество возможностей для управления ими.

Предположим, мы хотим получить доступ к столбцу «имя» нашего набора данных. Мы можем напрямую ссылаться на имя столбца в нашем фрейме данных, чтобы получить эти данные, например:

# Retrieve a subset of the data frame consisting of the "name" columns
my_data['name']

Другой способ сделать это — использовать нотацию $, которая на выходе предоставит вектор:

# Retrieve the data for the "name" column in the data frame.
my_data$name

Вы также можете сделать то же самое, используя двойные квадратные скобки, чтобы получить вектор из names столбца.

my_data[["name"]]

Точно так же можно получить доступ к любой конкретной строке набора данных. Например, чтобы получить первую строку набора данных со всеми значениями столбцов, мы можем использовать:

# Retrieve the first row of the data frame.
my_data[1,]

Мы можем указать более одного столбца или строки, используя c, функцию объединения. Используя c для объединения списка элементов, мы сообщаем R, что хотим, чтобы эти наблюдения были удалены из фрейма данных. Давайте попробуем.

# Retrieve the first row of the data frame, but only the "name" and "length_min" columns.
my_data[1, c("name","length_min")]

4. Доступ к встроенным наборам данных в R

R предоставляет пользователям различные встроенные наборы данных для различных целей. Чтобы узнать, какие наборы данных доступны, R предоставляет простую функцию — data — которая возвращает имена всех существующих наборов данных с небольшим описанием рядом с ними. Те, что в пакете datasets, все встроены.

# Displays a list of the inbuilt datasets. Opens in a new "window".
data()

Как видите, в среду R уже встроено много разных наборов данных. Необходимость пройти через каждый из них, чтобы взглянуть на их структуру и попытаться выяснить, что они представляют, может быть очень утомительной. К счастью, в R есть документация для каждого встроенного набора данных. Вы можете взглянуть на это, используя функцию help.

Например, если мы хотим узнать больше о наборе данных women, мы можем использовать следующую функцию:

# Opens up the documentation for the inbuilt "women" dataset.
help(women)

Поскольку перечисленные наборы данных являются встроенными, вам не нужно импортировать или загружать их для использования. Если вы ссылаетесь на них по имени, у R уже есть готовый фрейм данных.

women