R闪亮的gvisTable,用户按照定义的顺序选择列

 小--瑜Gg 发布于 2023-01-30 19:43

我有一个R闪亮的网页,我目前用它gvisTable来显示data.frame中的一系列列.这些行由用户使用动态选择sidebarPanel,但是现在这些列在gvisTable调用中被硬编码.

我想允许用户从下拉菜单中动态选择列(请参阅非闪亮网页中类似系统的快照).我想要的关键功能是允许使用列.

在此输入图像描述

任何想法如何通过闪亮的列排序选择?

我不介意使用别的东西,而不是gvisTable如果它做的工作.

编辑:感谢您使用可排序的答案显示解决方案.它适用于我的旧版和新版闪亮版.然而,这似乎并没有记住点击"刷新"的顺序,这将是非常好的.

那么,它可以将最后选择的订单保存为浏览器cookie还是类似的方式?服务器已通过身份验证,我被告知可以将变量顺序放在以用户ID为密钥的列表中.这方面的一个例子很棒.

1 个回答
  • 在Shiny中你必须使用多个selectInput.但是,您可以通过ZJ安装ShinySky(https://github.com/AnalytixWare/ShinySky)并使用他的select2绑定来进行排序.或者,您可以在https://github.com/mostly-harmless/sortable修改可排序绑定.

    编辑:我不知道cookies.我在一个更大的应用程序中使用sortable .我有一个动作按钮来保存用户选择的顺序.请参见数据>变换>重新排序列.在app中,数据存储在reactiveValue中.为了节省我使用的数据顺序values[[input$datasets]] <- values[[input$datasets]][,input$tr_reorder_cols],其中input$datasets为活动数据集,input$tr_reorder_cols是用户选择的变量排序,并且values是包含数据的reactiveValue.

    该应用程序的源代码在Github上:https://github.com/mostly-harmless/radiant

    作为替代方案,您还可以将变量的顺序保存在reactiveValue中.有关详细信息,请参阅Shiny文档.

    编辑:

    在global.R中定义一个reactiveValue:

    savedOrder <- reactiveValues()
    

    当用户更改顺序时(假设您将用户标识作为R中的变量提供):

    if(!is.null(input$sortable)) {
        savedOrder[[userid]] <- input$sortable
    }
    

    此外,您可以在刷新的情况下将id值传递给returnOrder:

    if(!is.null(savedOrder[[userid]])) {
        returnOrder("sortable",savedOrder[[userid]])
    } else {
        returnOrder("sortable",colnames(dat))
    }
    

    2023-01-30 19:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有