r - 根据数据框中的变量组对行进行排序
问题描述
我有一个看起来像这样的数据框 -
df=data.frame(Code=c('Q1','Q1','Q1','Q1','Q2','Q2','Q2','Q2','Q3','Q3','Q3','Q3'),
Fiscal_Year=c('FY18','FY16','FY17','FY15','FY15','FY18','FY17','FY16','FY15','FY16','FY17','FY18'),
Score=c(0.23,0.25,0.32,0.41,0.61,0.54,0.45,0.51,0.78,0.79,0.81,0.84))
我的目标是按问题分组Code
(数据框中已经是这种情况),然后对于每个组,按Fiscal_Year
.
财政年度为 FY15(2015 财政年度)、FY16(2016 财政年度)、FY17(2017 财政年度)和 FY18(2018 财政年度)。
所以级别的顺序是 FY15 < FY16 < FY17 < FY18。
为了定义 R 中的级别,我执行了以下操作 -
#Convert column to factor
df$Fiscal_Year=as.factor(df$Fiscal_Year)
#Define order of levels
levels(df$Fiscal_Year)=c("FY15","FY16","FY17","FY18")
接下来,我希望分组Code
,然后在每个组内按升序排序。Fiscal_Year
例如,对于问题组Q2
,我希望按会计年度(FY15、FY16、FY17、FY18)的升序对行进行排序。其他问题组也是如此。
我的尝试
使用 dplyr 包,我尝试这样做
library(dplyr)
df=sat %>%
group_by(CTQ_QUEST_CODE,FY) %>%
arrange(CTQ_QUEST_CODE,desc(FY))
但是我没有得到我正在寻找的结果。
对此的任何投入将不胜感激。
解决方案
只需.by_group = TRUE
添加arrange()
:
df %>%
group_by(Code) %>%
arrange(Fiscal_Year, .by_group = TRUE)
推荐阅读
- django - Where to find Cpanel python app console logs?
- python - 呼叫按钮只滴答一秒钟,无法显示文字?
- scala - Transforming Binary Column is Spark SQL
- python - 带有 IF 语句的字典
- r - 如何从向量中提取最大值并将其定位在R中?
- sql-server-2012 - Flask-SqlAlchemy 复合键一对多关系Sql Server
- bash - 如何在 .bashrc 中为 ssh 命令创建别名?
- excel - CDO.Message 附件
- asp.net - 如何在asp.net核心中使用分页列表实现多分页?
- flutter - 颤振无效压缩数据以膨胀。错误的 zipfile 偏移量