Читаем Основы статистической обработки педагогической информации полностью

Нередко формируемые наборы данных содержат сотни или даже тысячи записей. В таком случае проблематично даже просто найти интересующую переменную. Функция select позволяет быстро сузить поле зрения исследователя, сконцентрировав его на нужных именах переменных. Конечно, select не очень полезна для базы авиаперелётов, так как здесь лишь 19 переменных, но продемонстрируем общую идею:

# поимённый выбор столбцов «месяц», «день»

select(flights, month, day)

# выбор всех столбцов между «месяц» и «день» включительно

select(flights, month:day)

# выбор всех столбцов, кроме тех, что лежат между «месяц» и «день» включительно

select(flights, -(month:day))

Существуют вспомогательные функции, которые уместно вызывать внутри select: функция starts_with("абв") выбирает имена столбцов начинающихся с «абв»; функция ends_with("эюя") выбирает имена столбцов заканчивающиеся на «эюя»; функция contains("клм") выбирает имена содержаие подстроку «клм»; функция matches("(.)\\1") выбирает переменные, имена которых соответствуют заданному регулярному выражению, конкретно в данном случае магическим образом выбираются переменные, содержащие повторяющиеся символы, подробнее о регулярных выражениях в строках расскажем в соответствующей главе; вызов num_range("m", 2:4) соответствует набору m2, m3, m4. Всегда можно заглянуть в ?select для получения более подробной информации.

А еще, select можно использовать для переименования переменных, но это редко когда бывает полезным, так как отбрасывает не упомянутые явно переменные. Вместо этого для переименования используется функция rename, который является вариантом select, но сохраняет все переменные, которые не указаны явно:

rename(flights, год = year)

Другой вариант использования select, совместно со вспомогательной функцией everything, бывает необходим если есть несколько переменных, которые нужно переместить в начало базы данных. Например, месяц (month) и день (day) вылета будут показаны первыми при выводе данных из таблицы, содержащей информацию обо всех авиаперелётах (flights) по команде:

select (flights, month, day, everything )

Аналогично запланированную дату и время полёта (time_hour), и время, проведенное в воздухе, выраженное в минутах (air_time) можно перекинуть в начало.

Упражнения

1. Примените мозговой штурм, чтобы найти как можно больше способов выборки значений переменных содержащих информацию о времени из базы данных flights.

2. Что произойдет, если имя одной переменной использовать несколько раз при вызове функции select?

3. Что делает функция one_of? Насколько полезно её применение в сочетании с вектором c("month", "day")?

4. Является ли результатом выполнения следующего кода неожиданным? Что вспомогательные функции выбора переменных в нём возвращают по умолчанию? Как изменить их значение по умолчанию?

select(flights, -contains("TIME"))

Помимо выборки существующих столбцов, полей таблицы базы данных, переменных, бывает необходимым добавление новых столбцов, которые хранят значения, являющиеся функциями от существующих. Это выполняется путём обращения к функции mutate, которая всегда добавляет новые столбцы в конце имеющегося набор данных. Поэтому создадим более узкий набор данных, чтобы видеть новые переменные. Помните, что в RStudio самый простой способ увидеть все столбцы таблицы это вызов функции view. Создадим укороченный_вариант_таблицы, содержащий все поля между «год» (year) и «день» (day) включительно, плюс поля, содержащие информацию о задержках (заканчивающиеся на delay), покрытом расстоянии (distance) и времени полёта (air_time) в минутах:

укороченный_вариант_таблицы <– select(flights,

year:day,

ends_with("delay"),

distance,

air_time)

Теперь добавим вычисляемые поля с информацией об опоздании, – задержке вылета минус задержка прилета, в минутах, и о средней скорости полёта. Обратите внимание, что можно ссылаться на столбцы, которые уже созданы. Если вдруг захотите сохранить только новые переменные, то используйте transmute вместо mutate:

mutate(укороченный_вариант_таблицы,

опоздание = dep_delay – arr_delay,

скорость = distance / air_time * 60,

часы_полёта= air_time / 60,

опоздание_в_каждом_часе = опоздание / часы_полёта )

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

Перейти на страницу:

Похожие книги

10 заповедей коммуникационной войны. Как победить СМИ, Instagram и Facebook
10 заповедей коммуникационной войны. Как победить СМИ, Instagram и Facebook

Благодаря развитию социальных сетей и интернета информация сейчас распространяется с ужасающей скоростью – И не всегда правдивая или та, которую мы готовы раскрыть. Пост какого-нибудь влогера, который превратит вашу жизнь в кромешный ад, лишит ваш бизнес потребителей, заставит оправдываться перед акционерами, партнерами и клиентами всего лишь вопрос времени.Как реагировать, если кто-то сообщает ложные сведения о вас или вашем бизнесе? Что делать, если вы оказались вовлечены в публичный конфликт? Как правильно признать свою ошибку?Авторы книги предлагают 10 универсальных заповедей – способов поведения, которые помогут вам выйти из сложных коммуникационных ситуаций, а два десятка практических примеров (как положительных, так и отрицательных) наглядно демонстрируют широту и особенности их применения.Вряд ли у вас получится поставить эту книгу на полку, прочитав один раз. Оставьте ее на виду, обращайтесь к ней как можно чаще, и тогда у вас появится шанс выжить в коммуникационном армагеддоне XXI века.

Дмитрий Солопов , Каролина Гладкова

Маркетинг, PR / Менеджмент / Финансы и бизнес
Управление рисками
Управление рисками

Harvard Business Review – ведущий деловой журнал с многолетней историей. В этот сборник вошли лучшие статьи авторов HBR на тему риск-менеджмента.Инсайдерские атаки, саботаж, нарушение цепочек поставок, техногенные катастрофы и политические кризисы влияют на устойчивость организаций. Пытаясь их предотвратить, большинство руководителей вводят все новые и новые правила и принуждают сотрудников их выполнять. Однако переоценка некоторых рисков и невозможность предусмотреть скрытые угрозы приводят к тому, что компании нерационально расходуют ресурсы, а это может нанести серьезный, а то и непоправимый ущерб бизнесу. Прочитав этот сборник, вы узнаете о категориях рисков и внедрении процессов по управлению ими, научитесь использовать неопределенность для прорывных инноваций и сможете избежать распространенных ошибок прогнозирования, чтобы получить конкурентное преимущество.Статьи Нассима Талеба, Кондолизы Райс, Роберта Каплана и других авторов HBR помогут вам выстроить эффективную стратегию управления рисками и подготовиться к будущим вызовам.Способность компании противостоять штормам во многом зависит от того, насколько серьезно лидеры воспринимают свою функцию управления рисками в то время, когда светит солнце и горизонт чист.Иногда попытки уклониться от риска в действительности его увеличивают, а готовность принять на себя больше риска позволяет более эффективно им управлять.Все организации стремятся учиться на ошибках. Немногие ищут возможность почерпнуть что-то из событий, которые могли бы закончиться плохо, но все обошлось благодаря удачному стечению обстоятельств. Руководители должны понимать и учитывать: если люди спаслись, будучи на волосок от гибели, они склонны приписывать это устойчивости системы, хотя столь же вероятно, что сама эта ситуация сложилась из-за уязвимости системы.Для когоДля руководителей, глав компаний, генеральных директоров и собственников бизнеса.

Harvard Business Review (HBR) , Сергей Каледин , Тулкин Нарметов

Карьера, кадры / Экономика / Менеджмент / Финансы и бизнес
Управление дебиторской задолженностью
Управление дебиторской задолженностью

Эта книга – ценный источник советов по грамотному управлению дебиторской задолженностью. С ее помощью вы узнаете все необходимое о кредитной политике предприятия, правилах заключения договора и правилах торговли, организации службы финансовой безопасности фирмы. Рекомендации, приведенные в книге, позволят вам оценить реальный размер дебиторской задолженности, с легкостью разобраться с предприятиями-должниками и, что самое главное, выявить потенциальных должников.Советы по «возврату долгов» основаны на многолетнем практическом опыте автора и представлены в виде сценариев, ориентированных на различные ситуации. Клиенты бывают разными, и зачастую их не выбирают, поэтому для кредитного контролера крайне важно суметь найти подход к каждомуКнига рассчитана на широкий круг читателей – в первую очередь тех, кто вынужден бороться со «злостными неплательщиками».

Светлана Геннадьевна Брунгильд , Сергей Каледин

Карьера, кадры / Юриспруденция / Бухучет и аудит / О бизнесе популярно / Менеджмент / Образование и наука / Финансы и бизнес
Чистый Agile. Основы гибкости
Чистый Agile. Основы гибкости

Прошло почти двадцать лет с тех пор как появился Манифест Agile. Легендарный Роберт Мартин (Дядя Боб) понял, что пора стряхнуть пыль с принципов Agile, и заново рассказать о гибком подходе не только новому поколению программистов, но и специалистам из других отраслей. Автор полюбившихся айтишникам книг «Чистый код», «Идеальный программист», «Чистая архитектура» стоял у истоков Agile. «Чистый Agile» устраняет недопонимание и путаницу, которые за годы существования Agile усложнили его применение по сравнению с изначальным замыслом.По сути Agile — это всего лишь небольшая подборка методов и инструментов, помогающая небольшим командам программистов управлять небольшими проектами,… но приводящая к большим результатам, потому что каждый крупный проект состоит из огромного количества кирпичиков. Пять десятков лет работы с проектами всех мыслимых видов и размеров позволяют Дяде Бобу показать, как на самом деле должен работать Agile.Если вы хотите понять преимущества Agile, не ищите лёгких путей — нужно правильно применять Agile. «Чистый Agile» расскажет, как это делать разработчикам, тестировщикам, руководителям, менеджерам проектов и клиентам.

Роберт Сесил Мартин , Роберт С. Мартин

Программирование, программы, базы данных / Менеджмент / Финансы и бизнес