gpt4 book ai didi

renderDataTable 中的 Rstudio Shiny 响应式(Reactive)选项列表

转载 作者:行者123 更新时间:2023-12-04 02:16:55 26 4
gpt4 key购买 nike

我正在尝试更改 renderDataTable 的选项调用 Shiny 以依赖于输入变量的值,在本例中为复选框。

第一个复选框成功地更改了表格的内容,如果选中,则再添加一列。
第二个复选框不会改变表格的选项。请参阅下面的代码,我正在加载数据表和其他扩展的更新版本,但这在这里似乎没有任何影响。
第三个复选框也不会改变表格中条目的格式,这是我最终想要做的。

有任何想法吗?

# server.R
library("ggplot2")
shinyServer(function(input, output, session) {
bold = reactive ({
bold = ''
bold = paste0(bold,'function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {')
bold = ifelse(input$checkbox3,paste0(bold),paste0(bold,'if (parseFloat(aData[0]) >= 0.1) { $("td:eq(0)", nRow).css("font-weight", "bold"); }'))
bold = paste0(bold,'}')
return(bold)
})
output$mytable = renderDataTable({
diamonds[,1:ifelse(input$checkbox1,6,5)]
}, options = list(fnRowCallback = I(bold()),aaSorting=list(list(2, ifelse(input$checkbox2,"asc","desc"))))
)
}
)


# ui.R
shinyUI({
pageWithSidebar(
h1('Diamonds DataTable with TableTools'),
tagList(
singleton(tags$head(tags$script(src='jquery.dataTables.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='TableTools.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='dataTables.colReorder.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='colvis.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='ZeroClipboard.min.js',type='text/javascript'))),
singleton(tags$head(tags$link(href='TableTools.min.css',rel='stylesheet',type='text/css'))),
singleton(tags$head(tags$link(href='ColVis.css',rel='stylesheet',type='text/css')))
, tags$head(
tags$style(HTML("
.cvclear{
text-align:right}")
)
)
),
tabPanel("foo",
checkboxInput("checkbox1", "add one more column", FALSE),
checkboxInput("checkbox2", "sort [desc] or [asc]", FALSE),
checkboxInput("checkbox3", "no bold", FALSE),
dataTableOutput("mytable")
)
)
})

最佳答案

该选项声明为:

"aaSorting": [[2,'asc']]

在 R 中是
options = list(aaSorting = list(list(2, 'asc')))

所以你需要交换你的 c对于 list .然而这里的逻辑是错误的。

If sorting is enabled, then DataTables will perform a first pass sort on initialisation. You can define which column(s) the sort is performed upon, and the sorting direction, with this variable. The aaSorting array should contain an array for each column to be sorted initially containing the column's index and a direction string ('asc' or 'desc').



所以这个选项只适用于表的初始化。我不认为 Shiny 会在表格形成后重新初始化它,所以这不会作为响应式(Reactive)仅在第一次初始化表格时起作用。但是,您更复杂的示例可能会起作用,它可能只是 list(list(...))那就是问题所在。

关于renderDataTable 中的 Rstudio Shiny 响应式(Reactive)选项列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24762632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com