-
arrange()排序
arrange(flights, year, month, day)
注:就是excel的多條件排序。后面的在前面的變量基礎(chǔ)上排序。
arrange(flights, desc(dep_delay))
降序排列。
無論正序倒序,空值排在最后
df <- tibble(x = c(5, 2, NA))
arrange(df, x)
arrange(df, desc(x))#NA總是排在后面
注:arrange(df, desc(is.na(x))) 只把NA排在前面,其他數(shù)字還按原來順序排。
arrange(df, desc(is.na(x)),x)把NA排在前面,其他X數(shù)據(jù)還按正序排。同上效果。
arrange(df, desc(is.na(x),x))把NA排在前面,其他x數(shù)據(jù)按倒序排。
-
select()篩選列
#1. 根據(jù)列名單獨(dú)選擇某幾列
select(flights, year, month, day)
#2.連選幾列
select(flights, year:day)
#3.連選+反選
select(flights, -(year:day))
#4.輔助函數(shù)-選擇列名符合以下要求的
starts_with("abc"): 以abc開頭的
ends_with("xyz"): 以xyz結(jié)尾的
contains("ijk"):包含ijk的
matches("(.)\\1"): 匹配正則表達(dá)式的
#5.重命名
rename(flights, tail_num = tailnum) #將tailnum修改為tail_name
#6.某幾列移動到開頭,everything表示其余各列
select(flights, time_hour, air_time, everything())
select(flights, contains("TIME", ignore.case = FALSE))
select輔助函數(shù)默認(rèn)忽略大小寫,如需修改加上ignore.case = FALSE
注:filter主要篩選行,select主要篩選列。
-
mutate()增加新變量
mutate() 總是將新列添加在數(shù)據(jù)集的最后,增加的新變量可以通過運(yùn)算得到。
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
)
transmute():只保留新列。
transmute(flights,
gain = arr_delay - dep_delay,
hours = air_time / 60,
gain_per_hour = gain / hours
)
mutate常見創(chuàng)建函數(shù),引用自花花圖片

dplyr數(shù)據(jù)轉(zhuǎn)換1.png