dplyr六函数
导入库和数据filterarrangeselectmutatesummarizedplyr是一个用于高效数据清理包
他还提供了pipe这种优雅的东西(暂且称之为东西)
可以对行或列(即observation和variable)进行高效优雅的操作
导入库和数据
library(nycflights13)library(dplyr)fligths
导入dplyr库和flights数据集
filter
• Pick observations by their values ( filter() ).
filter的功能是根据列的值选择符合条件的行
例如,
# 挑选出日期为一月一日的航班数据jan1 <- filter(flights, month == 1, day == 1)# 选择圣诞节当天的航班数据dec25 <- filter(flights, month == 12, day == 25)# 选择十一月或十二月的dec25 <- filter(flights, month == 12 | month == 11)
& | ! 分别表示 与 或 非
通过 is.na(colname) 来滤除NA值
filter(flights, !is.na(month))
arrange
• Reorder the rows ( arrange() ).
arrange:重新排列列或者行
# 根据函数内列名来排出列的先后顺序arrange(flights, year, month, day)# 按arr_delay这一列降序排列所有数据arrange(flights, desc(arr_delay))
select
• Pick variables by their names ( select() ).
通过select选择列
# 选择年、月、日这几列select(flights, year, month, day)# 选择年到日的几列,结果同上select(flights, year:day)# 除了年到日的这几列,都选上select(flights, -(year:day))
mutate
• Create new variables with functions of existing variables
( mutate() ).
通过mutate生成新的列
可以对列进行各种运算,也可以拿出来一个或多个列进行运算
不过要注意他的参数,与一般函数的参数形式不同,详见文档
flights_sml <- select(flights,year:day,ends_with("delay"),distance,air_time)mutate(flights_sml,gain = arr_delay - dep_delay,hours = air_time / 60,gain_per_hour = gain / hours)
summarize
• Collapse many values down to a single summary ( summarize() ).
summarize(flights, delay = mean(dep_delay, na.rm = TRUE))# 与group_by组合起来用by_day <- group_by(flights, year, month, day)summarize(by_day, delay = mean(dep_delay, na.rm = TRUE))
如果觉得《【R语言】数据清理利器:dplyr库六函数:filter select arange mutate summarize》对你有帮助,请点赞、收藏,并留下你的观点哦!