我正在尝试为R Shiny renderDataTable中的每一行创建4个单选按钮。我做了一些研究,发现这段代码适用于我的目的:
output$featureset = DT::renderDataTable(
m, escape = FALSE, selection = 'none', server = FALSE,
options = list(dom = 't', paging = FALSE, ordering = FALSE)
,
callback = JS("table.rows().every(function(i, tab, row) {
var $this = $(this.node());
$this.attr('id', this.data()[0]);
$this.addClass('shiny-input-radiogroup');
});
Shiny.unbindAll(table.table().node());
Shiny.bindAll(table.table().node());"
)
)
但是,在创建此动态数据集并生成这些单选按钮之前,我需要创建一个spark连接。连接创建和动态加载数据需要花费一些时间,所以我想我会点击按钮。因此,我引入了一个按钮并创建了一个连接,并在该按钮单击(eventReactive)后面加载了数据。
现在,我的问题是我不确定如何制作' renderDataTable'依赖于该按钮单击。我尝试过这样的if条件:
output$featureset = DT::renderDataTable({
if (is.null(conn_spark())) {print('commmon')}
dataset
},escape = FALSE, selection = 'none', server = FALSE, options = list(dom = 't', paging = FALSE, ordering = FALSE),
callback = JS("table.rows().every(function(i, tab, row) {
var $this = $(this.node());
$this.attr('id', this.data()[0]);
$this.addClass('shiny-input-radiogroup');
});
Shiny.unbindAll(table.table().node());
Shiny.bindAll(table.table().node());"
)
)
但是,由于某种原因它不起作用。我没有看到任何创造的东西。我很感激任何帮助。感谢。
如果有任何可以帮助的事情,请随时告诉我,但我还没有提到我的问题。我很乐意这样做。