Таблицы данных – это основной класс объектов R, используемых для хранения данных. Обычно такие таблицы подготавливаются при помощи сторонних приложений (особенно популярна и удобна программа Microsoft Excel) и затем загружаются в среду R. Подробнее об импортировании данных в R рассказано здесь. Тем не менее, небольшую таблицу можно собрать из нескольких векторов средствами самой системы R. Для этого используют функцию data.frame().
Предположим, у нас есть наблюдения по общей численности мужского (Male) и женского (Female) населения в трех городах City1, City2, и City3. Представим эти данные в виде одной таблицы с именем CITY. Для начала создадим текстовые векторы с названиями городов (сity) и пола (sex), а также вектор со значениями численности представителей каждого пола (number):
Теперь объединим эти три вектора в одну таблицу данных и посмотрим, что получилось:
CITY <- data.frame(City = city, Sex = sex, Number = number)
CITY City Sex Number 1 City1 Male 12450 2 City1 Female 10345 3 City2 Male 5670 4 City2 Female 5800 5 City3 Male 25129 6 City3 Female 26000
Обратите внимание на синтаксис функции data.frame(): ее аргументы перечисляются в формате "заголовок столбца = добавляемый вектор". В качестве заголовков столбцов могут выступать любые пользовательские имена, удовлетворяющие требованиям R (см. об этом подробнее в следующем сообщении).
Как и в случае со списками, извлечь отдельные компоненты таблиц для выполнения необходимых вычислений можно с использованием знака $, двойных квадратных скобок [[]], либо непосредственно по имени столбца:
Как и в случае со списками, извлечь отдельные компоненты таблиц для выполнения необходимых вычислений можно с использованием знака $, двойных квадратных скобок [[]], либо непосредственно по имени столбца:
CITY$Sex [1] Male Female Male Female Male Female Levels: Female Male CITY$Number [1] 12450 10345 5670 5800 25129 26000 # Идентичные результаты можно получить при помощи следующих команд: CITY[[2]] [1] Male Female Male Female Male Female Levels: Female Male CITY[[3]] [1] 12450 10345 5670 5800 25129 26000 CITY["Sex"] [1] Male Female Male Female Male Female Levels: Female Male CITY["Number"] [1] 12450 10345 5670 5800 25129 26000
После имени или индексного номера столбца можно указывать индексные номера отдельных ячеек таблицы, что позволяет извлекать содержимое этих ячеек:
# Извлекаем 4-й элемент из столбца Number: CITY$Number[4] [1] 5800 # Извлекаем элементы 1-3 из столбца Number: CITY$Number[1:3] [1] 12450 10345 5670 # Извлекаем все значения численности населения, превышающие 10000 CITY$Number[CITY$Number > 10000] [1] 12450 10345 25129 26000 # Извлекаем все значения численности мужского населения: CITY$Number[CITY$Sex == "Male"] [1] 12450 5670 25129 # Повторяем те же команды, но с использованием [[]]: CITY[[3]][4] [1] 5800 CITY[[3]][1:3] [1] 12450 10345 5670 CITY[[3]][CITY$Number >10000] [1] 12450 10345 25129 26000 CITY[[3]][CITY$Sex == "Male"] [1] 12450 5670 25129
При работе с большими таблицами данных бывает сложно визуально исследовать всё их содержимое перед началом анализа. Однако визуального просмотра содержимого таблиц и не требуется - полную сводную информацию о них (равно как и о других объектах R) можно лекго получить при помощи команды str() (structure - структура):
Как следует из представленного отчета, объект CITY является таблицей данных, в состав которой входят три перменные с шестью наблюдениями каждая. Две из этих перменных - City и Sex - программа автоматически распознала как факторы с тремя и двумя уровнями соответственно. Переменная Number является количественной. Для удобства выводятся также несколько первых значений каждой переменной.
Часто возникает необходимость выяснить лишь имена переменных, входящих в таблицу данных. Это можно сделать при помощи команды names():
Имеется также возможноть быстро просмотреть несколько первых или несколько последних значений каждой переменной, входящей в состав таблицы данных. Для этого используются функции head() и tail() соответственно:
При необходимости внесения исправлений в таблицу можно воспользоваться встроенным в R редактором данных. Внешне этот редактор напоминает обычный лист Excel, однако имеет весьма ограниченные функциональные возможности. Все, что он позволяет делать – это добавлять новые или исправлять уже введенные значения переменных, изменять заголовки столбцов, а также добавлять новые строки и столбцы. Работая в стандартной версии R, редактор данных можно запустить из меню File -> Data editor либо выполнив команду fix() (fix – исправлять, чинить) из командной строки консоли R (например, fix(CITY)). После внесения исправлений редактор просто закрывают – все изменения будут сохранены автоматически:
Как следует из представленного отчета, объект CITY является таблицей данных, в состав которой входят три перменные с шестью наблюдениями каждая. Две из этих перменных - City и Sex - программа автоматически распознала как факторы с тремя и двумя уровнями соответственно. Переменная Number является количественной. Для удобства выводятся также несколько первых значений каждой переменной.
Часто возникает необходимость выяснить лишь имена переменных, входящих в таблицу данных. Это можно сделать при помощи команды names():
names(CITY) [1] "City" "Sex" "Number"
Имеется также возможноть быстро просмотреть несколько первых или несколько последних значений каждой переменной, входящей в состав таблицы данных. Для этого используются функции head() и tail() соответственно:
head(CITY, n = 3) City Sex Number 1 City1 Male 12450 2 City1 Female 10345 3 City2 Male 5670
tail(CITY, n = 2) City Sex Number 5 City3 Male 25129 6 City3 Female 26000
При необходимости внесения исправлений в таблицу можно воспользоваться встроенным в R редактором данных. Внешне этот редактор напоминает обычный лист Excel, однако имеет весьма ограниченные функциональные возможности. Все, что он позволяет делать – это добавлять новые или исправлять уже введенные значения переменных, изменять заголовки столбцов, а также добавлять новые строки и столбцы. Работая в стандартной версии R, редактор данных можно запустить из меню File -> Data editor либо выполнив команду fix() (fix – исправлять, чинить) из командной строки консоли R (например, fix(CITY)). После внесения исправлений редактор просто закрывают – все изменения будут сохранены автоматически:
Обратите внимание, что в программе RStudio функция fix() в настоящее время не поддерживается.
--
Создано при помощи Pretty R на сайте inside-R.org
Как правильнее выполнить вставку в data frame с точки зрения производительности?
То есть реализовать основные аналоги SQL команд по аналогии
Удаление (Delete): CITY <- CITY[CITY$City != "City3"] Удалить данные о City3
Выборка (Select): CITY1 <- CITY[CITY$City == "City1"] Показать данные о City1
Изменение (Update): CITY[CITY$City=="City1",3]<-"City5" Изменить в данных City1 на City5
Не приведете быстрой пример вставки(Insert) данных, например ("City4", "Female", 30000) к уже существующему data.frame?
Извините, что анонимно (google account не сработал).
Посему новые данные придется сначала преобразовать в самостоятельную таблицу данных, а потом добавить ее к уже существующей при помощи rbind(). Например:
new <- data.frame(City = "City4", Sex = "Female", Number = 30000)
result <- rbind(old, new)
Можно было бы эти две строки свести и в одну (правда, читаемость кода снизилась бы):
result <- rbind(old, data.frame(City = "City4", Sex = "Female", Number = 30000))
P.S.: настоятельно рекомендую обратить внимание на новый пакет для работы с таблицами - dplyr:
http://r-analytics.blogspot.co.uk/2014/07/tidyr.html
https://www.dropbox.com/sh/i8qnluwmuieicxc/AACsepZJvULCKkbIxK9KP-6Ea/dplyr-tutorial.pdf?dl=0
Отправить комментарий