Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2014

http://makarich.fbb.msu.ru/artemov/R/example_agg/grades.csv

http://makarich.fbb.msu.ru/artemov/R/example_agg/metadata.csv

dplyr

Позволяет легко извлекать и преобразовывать данные Имеет простой синтаксис Позволяет выстраивать конвейер и не плодить лишние промежуточные переменные

Устанавливаем пакет

install.packages("dplyr")

Анализируем данные о качестве воздуха. Select

head(airquality) 

Select

select(airquality, Wind, Temp) 

Filter

Выберем все строки, где температура >70 (не пугайтесь, это в фаренгейтах)

f_airquality<-filter(airquality, Temp > 70) 

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

f_airquality<- filter(airquality, Temp > 80 & Month > 5) 

задание 1

Выведите данные airquality за август, когда температура была больше 75, но меньше 90

Mutate

Позволяет добавить новый столбец к данным.

Например, добавим столбец с температурой в градусах Цельсия

m_airquality<-mutate(airquality, TempInC = (Temp - 32) * 5 / 9) 

transmute

Делает тоже самое, что mutate, только возвращает один новый столбец

c_temp<-transmute(airquality, TempInC = (Temp - 32) * 5 / 9) 

Задание 2

Добавьте столбец Wind_kmh – скорость в км/ч (в столбце Wind данные в милях/ч). Считайте, что миля=1.6 км

Summarise

Позволяет применять функцию к данным (очень мощная штука!)

Вычислим среднюю температуру

summarise(airquality, mean(Temp, na.rm = TRUE)) 

Group By

Используется для группировки данных по одной и более переменных.

Выведем среднюю температуру по месяцам

summarise(group_by(airquality, Month), mean(Temp, na.rm = TRUE)) 

Задание 3

Выведите среднюю скорость ветра по месяцам

Sample

Позволяет выбирать случайные строки из датафрейма

sample_n(airquality, size = 5) 

sample_frac(airquality, size = 0.05)

Count

Считает строки, группируя их по заданным столбцам. Посчитаем количество строк для каждого месяца

count(airquality, Month)

Arrange

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

new_airquality<-arrange(airquality, desc(Month), Day) 
head(new_airquality) 

Конвейер

Можно передавать данные из одной команды в другую.

airquality %>% filter(Month != 5) %>%  group_by(Month) %>% summarise(mean(Temp, na.rm = TRUE))

Тоже что и

filteredData <- filter(airquality, Month != 5) 
groupedData <- group_by(filteredData, Month) 
summarise(groupedData, mean(Temp, na.rm = TRUE))

Inner_join

Склеивает таблицы по столбцу (столбцам)

stud<-inner_join(metadata, grades, by=c("id"))

left_join оставляет все строки из первого датафрейма right_join оставляет все строки из второго датафрейма

Для строк без соответствия добавляет NA

grades1<-grades[1:100,]
stud1<-left_join(metadata, grades1, by=c("id"))
head(stud1)
stud_na<-filter(stud1, is.na(write))

Задание 4

Загрузите данные об оценках студентов grades.csv и данные с информацией о студентах metadata.csv Посчитайте среднюю оценку за письмо (write) для мальчиков и девочек Отличаются ли оценки по письму у мальчиков и девочек? (вспоминаем статистику)