You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shiny应用中如何调整表格星期排序为用户选定的日期先后顺序

调整方法

你的表格按字母顺序排序的原因是Week列是字符串类型,默认按首字母排序,M开头的Monday自然排在S开头的Sunday前面。只要将Week列转为因子,因子水平设置为你选择的日期对应的星期先后顺序即可,只需要修改data_subset响应函数的最后部分:

data_subset <- reactive({
    req(input$daterange1)
    req(input$daterange1[1] <= input$daterange1[2])
    days <- seq(input$daterange1[1], input$daterange1[2], by = 'day')
    Test1 <- dplyr::filter(data(), date1 %in% days)
    weeks_inp <- unique(weekdays(days))  
    wk <- wk_port2eng[wk_port2eng$WeekP %in% weeks_inp,]  ###  如果你的系统环境是葡萄牙语用这行
    #wk <- wk_port2eng[wk_port2eng$WeekE %in% weeks_inp,]  ###  如果你的系统环境是英语用这行
    
    weeks_ine <- wk$WeekE
    meanTest1 <- data() %>%
        group_by(Week = tools::toTitleCase(Week), Category) %>% 
        summarise(mean = mean(time, na.rm = TRUE), .groups = 'drop')
    meanTest <- meanTest1[meanTest1$Week %in% as.character(weeks_ine),]
    # 新增两行代码调整顺序
    meanTest$Week <- factor(meanTest$Week, levels = weeks_ine)
    meanTest <- dplyr::arrange(meanTest, Week)
    meanTest
})

改动说明

  • weeks_ine本身就是按你选择的日期顺序生成的对应星期列表,天然就是你要的先后顺序
  • 将Week列转为因子,水平设置为weeks_ine的顺序,再按Week排序,就能完全匹配你选择的时段的星期先后,选周日到周一就会显示周日在前、周一在后。

内容的提问来源于stack exchange,提问作者Antonio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:06:03