我有一个看起来像这样的数据框 -
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句