5個(gè)關(guān)鍵的dplyr函數(shù):
根據(jù)值選擇觀察(記錄),filter()####篩選行
對(duì)行重新排序,arrange() ######arrange()函數(shù)工作原理和filter()相似轴或,但它不是選擇行盯漂,而是改變行的順序库继。
根據(jù)名字選擇變量侍芝,select() #####篩選列
根據(jù)已知的變量創(chuàng)建新的變量凉泄,mutate()
將許多值塌縮為單個(gè)描述性匯總辫呻,summarize()
重命名列rename()
舉例filter()
a <- filter(flights, month == 1, day == 1)
b<- filter(flights, month == 11 | month == 12)
c <- filter(flights, month %in% c(11, 12))
列舉arrange()
arrange(flights, year, month, day)
arrange(flights, desc(arr_delay))
select(flights, year, month, day)
select(flights, year:day) # 選擇year到day之間(包含本身)的所有列
select(flights, -(year:day))# 選擇那么除year到day的所有列
有很多幫助函數(shù)可以使用在select()函數(shù)中:
starts_with("abc")匹配以“abc”開頭的名字清钥。
ends_with("xyz")匹配以“xyz”結(jié)尾的名字。
contains("ijk")匹配包含“ijk”的名字印屁。
matches("(.)\\1")選擇符合正則表達(dá)式的變量循捺。這里是任意包含有重復(fù)字符的變量。
num_range("x", 1:3)匹配x1雄人,x2从橘,x3。
rename重命名列
rename(flights, tail_num = tailnum) ###rename()來給變量重新命名列名
使用mutate()添加新變量
flights_sml <- select(flights, year:day,
ends_with("delay"),
distance,
air_time)
mutate(flights_sml,
gain = arr_delay - dep_delay,
speed = distance / air_time * 60)
####再例如
mutate(flights_sml,
gain = arr_delay - dep_delay,
hours = air_time / 60,
gain_per_hour = gain / hours)
####如果你僅僅想要保存新的變量础钠,使用transmute():
transmute(flights,
gain = arr_delay - dep_delay,
hours = air_time / 60,
gain_per_hour = gain / hours)
summarize()與group_by()和管道符%>%配對(duì)使用
summarize()與group_by()配對(duì)使用
比如恰力,我們想要按日期分組,得到每個(gè)日期的平均延期:
by_day <- group_by(flights, year, month, day)
summarize(by_day, delay = mean(dep_delay, na.rm = TRUE))
#####探索每個(gè)位置距離和平均航班延遲的關(guān)系
delays <- flights %>%
group_by(dest) %>%
summarize(
count = n(),
dist = mean(distance, na.rm = TRUE),
delay = mean(arr_delay, na.rm = TRUE)
) %>%
filter(count > 20, dest != "HNL")
#####其中n()計(jì)數(shù)的作用
上述代碼分三步進(jìn)行了數(shù)據(jù)準(zhǔn)備:
1.按目的地將航班分組,計(jì)算了每一組的dist平均值和delay 的平均值旗吁。
2.匯總計(jì)算距離踩萎、平均延時(shí)和航班數(shù)目
3.移除噪聲點(diǎn)和Honolulu航班,它太遠(yuǎn)了很钓。