- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个R shiny我目前使用的网页gvisTable
显示数据框中选择的列。用户使用 sidebarPanel
动态选择行,但现在列在 gvisTable
调用中进行硬编码。
我想允许用户从下拉菜单中动态选择列(请参阅来自非 Shiny 网页的类似系统的快照)。我想要的关键功能是允许对列重新排序。
有什么想法如何以 Shiny 的方式传递这个排序的列选择吗?
如果它能完成这项工作,我不介意使用其他东西来代替 gvisTable
。
编辑:感谢您展示使用可排序答案的解决方案。它适用于我的旧版本和新版本的 Shiny 。然而,这似乎不记得点击“刷新”时的顺序,如果有的话那就太好了。
那么,它可以将最后选择的订单保存为浏览器 cookie 或类似的方式吗?服务器已通过身份验证,并且我被告知可以将变量顺序放入以用户 ID 作为 key 的列表中。举个例子就太好了。
最佳答案
在 Shiny 中,您必须使用多个 selectInput。但是,您可以安装 ZJ ( https://github.com/AnalytixWare/ShinySky ) 的 ShinySky 并使用他的 select2 绑定(bind)来进行排序。或者,您可以修改 https://github.com/mostly-harmless/sortable 处的可排序绑定(bind)。 .
编辑:我不了解cookie。我在更大的app中使用sortable 。我有一个操作按钮来保存用户选择的订单。请参见数据 > 转换 > 对列重新排序。在应用程序中,数据存储在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()
当用户更改订单时(假设您有 userid 可用作 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))
}
关于R Shiny 的 gvisTable ,其中用户按定义的顺序选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21404110/
我试图解决的实际问题:我正在创建一个包含数据表的仪表板。我希望将数字格式化为逗号作为千位分隔符,但是(显然)DT 包与 Shiny 一起使用时存在问题,因为逗号分隔的格式会导致 DT::renderD
我有一个R shiny我目前使用的网页gvisTable显示数据框中选择的列。用户使用 sidebarPanel 动态选择行,但现在列在 gvisTable 调用中进行硬编码。 我想允许用户从下拉菜单
有没有办法在 googleVis 的 gvisTable 中进行多级排序? 我正在使用 Shiny 来显示这样的 gvisTable: x <- gvisTable(tabData,options=l
小问题:如何在 shiny 中使用/获取 gvisTable 的选择? 我可以用这样的 DT 包来实现: library(DT) library(shiny) server <- function(i
在 R 中,我希望为 gvisTable 设置输出选择,以便突出显示特定的行或列。 例如我有以下代码: a <- as.data.frame(matrix(1:100, nrow=10)) plot(
我想研究如何以不需要使用放置在 HTML header 中的样式的方式生成格式化的 HTML 表格。 I've broadly asked about this question already ,但
我是一名优秀的程序员,十分优秀!