#########dplyr####专注接受dataframe对象,大幅度提高了速度
library(dplyr)
library(Lahman)
library(hflights)
###将过长过大的数据集转换为显示更友好的tbl_df类型
hflights_df=tbl_df(hflights)
#基本操作
###筛选:filter()
#按给定的逻辑判断筛选出符合要求的子数据集,类似于:subset()函数
filter(hflights_df,Month==1,DayofMonth==1)
##R自带函数实现
hflights[hflights$Month==1&hflights$DayofMonth==1,]
##注意:表示AND时要使用&而避免&&
1.2排列:arrange()
#安给定的列名依次对行进行排序
arrange(hflights_df, DayofMonth, Month, Year)
#对列名家desc()进行倒序
arrange(hflights_df,desc(ArrTime))
####选择select()
##用列名做参数来选择子数据集
select(hflights_df,Year,Month,DayOfWeek)
select(hflights_df,Year:DayOfWeek)
select(hflights_df,-(Year:DayOfWeek))
#同样类似R自带的subset()函数
#################变形 mutate()
#对已有列进行数据运算并添加为新列
mutate(hflights_df,gain=ArrDelay-DepDelay)
#类似于transform(hflights_df,gain=ArrDelay-DepDelay),优势在于可以在用同一语句中对刚增加的列进行操作
mutate(hflights_df,gain=ArrDelay-DepDelay,gain_per=gain/(AirTime/60))
################汇总summarise()
#对数据框调用其他函数进行汇总操作,返回一维的结果:
summarise(hflights_df,delay=mean(DepDelay,na.rm = T))
####分组动作group_by()
plans=group_by(hflights_df,TailNum)
delay <- summarise(plans,
count = n(),
dist = mean(Distance, na.rm = TRUE),
delay = mean(ArrDelay, na.rm = TRUE))
delay <- filter(delay, count > 20, dist < 2000)
library(ggplot2)
ggplot(delay, aes(dist, delay)) +
geom_point(aes(size = count), alpha = 1/2) +
geom_smooth() +
scale_size_area()
#############
n() #计算个数
n_distinct():计算x中唯一值的个数
first(),last(),nth(x,n)
#########################连接符%.%
###包里新引进了一个操作符。使用时把数据名作为开头,然后依次对此数据进行多部操作
Batting%.%group_by(playerID)%.%summarise(totao=sum(G))%.%arrange(desc(totao))%.%head(5)
dplyr包简单介绍
最新推荐文章于 2023-07-12 17:14:27 发布