首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按学期和年份排序

按学期和年份排序
EN

Stack Overflow用户
提问于 2021-11-18 00:00:28
回答 1查看 39关注 0票数 0

我正在尝试使用facet_grid对am图进行排序,例如:

对不起,我知道我的数据没有逻辑,但它可以显示我的问题与方面…

在我的真实数据中,我没有这个数据,在这个例子中,我只是使用下面的块来获取我的数据:

代码语言:javascript
复制
################ only to get data in my example ######################


    set.seed(12345)
    Date <- seq(as.Date("2010/1/1"), as.Date("2013/1/1"), "6 months" )
    Y <- rnorm(n=length(Date), mean=100, sd=1)
    df <- data.frame(Date, Y)
    df$Year <- format(df$Date, "%Y")
    df$Sem <- format(df$Date, "%b")
    df$Sem <- gsub("ene.", "1S",df$Sem )
    df$Sem <- gsub("jul.", "2S",df$Sem )
    df$MonthYear <- format(df$Date, "%b-%Y")

     ##############        o          #################

我的真实数据中的变量是:

Sem、学期和Y

我在第二次尝试时提取年份进行排序:

代码语言:javascript
复制
    df=df %>%
    mutate(extract_year= sub('.*(\\d{4}).*', '\\1', MonthYear)) 

    df$Semester=paste0(df$Sem,df$extract_year)

#在这里我尝试对facet进行排序,但失败了:

代码语言:javascript
复制
    df2 <- within(df,Semester <- ordered(Semester, levels = rev(sort(unique(Semester)))))

    df2 %>%
    ggplot(aes(y = Y )) + 
    geom_bar() +
    facet_grid(Semester~.)

我还尝试了:

代码语言:javascript
复制
    df2 %>%
    arrange(extract_year) %>%
    ggplot(aes(y = Y )) + 
    geom_bar() +
    facet_grid(Semester~.)

我想要这个订单:

1S2010/2S2010/1S2011/2S2011/1S2012/2S2012

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-18 00:15:33

基本上,你必须按照你想要的顺序来设置级别的顺序。要实现这一点,一种方法是按照您想要的顺序对数据进行arrange,并使用forcats::fct_inorder来设置Semester变量的级别顺序。

代码语言:javascript
复制
library(ggplot2)
library(dplyr)

## Make Semester variable in the desired format
df <- mutate(df, Sem = recode(Sem, Jan = "1S", Jul = "2S"),
             Semester = paste0(Sem, Year))

# Arrange and set order
df <- df %>% 
  arrange(gsub("^(\\dS)(\\d{4})$", "\\2\\1", Semester)) %>%
  mutate(Semester = forcats::fct_inorder(Semester))

df %>%
  ggplot(aes(y = Y )) + 
  geom_bar() +
  facet_grid(Semester~.)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70013026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档