首页 > 解决方案 > 如何对数据框的子集进行排序

问题描述

请在附件中找到我的示例数据集

我真正想要实现的是创建一个数据框,该数据框首先根据周期按升序对数据进行排序,并在每个周期内按案例计数的降序再次对数据进行排序(按周期、区域、经理分组,员工)

到目前为止,我已经做到了这一点,但它并没有给我想要的东西。

我计划绘制这些值,这就是为什么我需要先按升序对它进行排序,并且在每个值中我希望数据按降序排序。

SampleRADN <- read_excel("C:/Users/xxx/Documents/Exercises/PBIR/SampleRADN.xlsx")
df1<-unique(data.frame(SampleRADN))
library(dplyr)
df2<-df1%>%count(period,region,manager,employee)
df3<-df2[order(df2$period, -df2$n)

任何帮助是极大的赞赏。

标签: r

解决方案


@NelsonGon 非常感谢您指出用户需要以更好的方式提供数据,以便寻找解决方案的人始终可以访问数据和回答。老实说,我没有想到这一点。但是,我的示例数据有 600 多行,除了通过链接提供之外,我不知道如何复制这种大小的示例数据。但是,我通过执行以下操作解决了这个问题

library(openxlsx)
library(dplyr)
library(tidyverse)
df <- read.xlsx("C:/Users/smpao1/Documents/Exercises/PBIR/SampleRADN.xlsx")
df1<-data.frame(df)
df2<-df1%>%count(period,region)
df3<-df2[order(df2$period, -df2$n),]
df4<-df1%>%count(period,region,manager,employee)
df5<-df4[order(df4$period, -df4$n),]
df6<-left_join(df3,df5,by=c("period"="period","region"="region"))
df7<-df6%>% select(period, region, manager, employee,n.y)

推荐阅读