窗口函数在dplyr包及R基础包中,相当于深入运用,可对应SQL函数数据处理
1、排序函数dense_rank:有重复排名,相同值将标为同一排名,不会占用多个排名序号
根据数据处理需求进行排序,添加排名标签,然后对数据作进一步选取。
#对数据按照日期分组后排序,从大到小排序
activity_value_rank<-activity_value%>%
group_by(date)%>%
mutate(value_rank=dense_rank(desc(max_value)))
#对数据按照日期分组后排序,从小到大排序
activity_value_rank<-activity_value%>%
group_by(date)%>%
mutate(value_rank=dense_rank(max_value))
#iris数据示例运行结果
2、排序函数row_number:无重复排名
根据数据处理需求进行排序,添加排名标签
#对数据按照花的品种分组后排序,根据花瓣长度值从大到小排序
iris%>%group_by(Species)%>%mutate(pe_rank=row_number(desc(Petal.Length)))
#对数据按照花的品种分组后排序,根据花瓣长度值从小到大排序
iris%>%group_by(Species)%>%mutate(pe_rank=row_number(Petal.Length))
#iris数据示例运行结果
3、 排序函数min_rank:有重复排名,相同值将标为同一排名,会占用多个排名序号
#对数据按照花的品种分组后排序,根据花瓣长度值从大到小排序
iris%>%group_by(Species)%>%mutate(pe_rank=min_rank(desc(Petal.Length)))
#iris数据示例运行结果
4、排序函数ntile:将数据分块排序
iris%>%group_by(Species)%>%mutate(pe_rank=ntile(desc(Petal.Length),5))
#iris数据示例运行结果