【发布时间】:2019-07-12 03:11:32
【问题描述】:
所以我正在制作一个闪亮的应用程序,它接受多个输入并生成这些输入的多个图和表。
制作一张表的示例 RenderTable 代码如下:
output$Table1 <-
renderTable(data.frame(Shape = c("\u25CF", "\u25B2", "\u25FC", ""),
"Genes" = c(input$custom_genes1, "Mean"),
Analysed_values = c(t(analysis1()), mean(analysis1()))),
striped = TRUE, bordered = TRUE, hover = TRUE)
Shape 是图中的符号,“Genes”是使用 selectizeInput 选择的基因,而 analysis1() 是前面代码中定义的反应计算的结果。
但是我有 8-9 个表需要根据各种复选框等显示。我不想复制粘贴代码并替换所有相关值,而是想创建一个可以用来快速显示所有表格,如果我需要更改格式或稍后添加任何内容,我可以只编辑函数而不是单独编辑每个表格。
我尝试使用下面的代码创建一个可重复使用的函数:
construct_table <- function(genes_select, dataset){
renderTable(data.frame(Shape = c("\u25CF", "\u25B2", "\u25FC", ""),
"Genes" = genes_select,
Analysed_values = c(t(dataset), mean(dataset))),
striped = TRUE, bordered = TRUE, hover = TRUE)
}
然后更容易直接调用每个表:
output$Table1 <- construct_table(input$custom_genes1, analysis1())
这适用于使用初始输入值创建表,但不会使表反应。
如何在普通函数中调用 renderTable 反应函数,或者是否有另一个我忽略的反应函数可以在其中嵌套 renderTable 函数,其工作方式与普通函数相同?
【问题讨论】: