【发布时间】:2021-03-06 07:15:57
【问题描述】:
我第一次在一个闪亮的应用程序上工作。
基于上传的 xlsx,闪亮的应用程序会创建一个名为 garnetRF() 的响应式输出。根据上传的 xlsx 中不同名称的样本数量,该应用程序会在 output$tabp 中创建动态选项卡。在选项卡中,用户可以选择要为每个样本显示的颜色。到目前为止,一切顺利。
现在,在ouput$setting 中,我想用用户选择的颜色绘制结果。因此,我的想法是通过选择的颜色名称(cls.0)重命名样本级别。但是,当执行如下代码时,会产生两个级别的列表,我不明白为什么:
output$tabp <- renderUI({
req(garnetRF())
l = length(unique((garnetRF()[,"sample"])))
myTabs <- lapply(1:l, function(i) {
tabPanel(title = as.list(factor(unique(garnetRF()[,"sample"])))[[i]],
colourInput(paste0("col_", i), NULL, paste0("FF000", i), showColour = "background")
)
})
do.call(tabsetPanel, myTabs)
})
output$setting <- renderPlot({
l2 = length(unique((garnetRF()[,"sample"])))
cls.0 = factor((garnetRF()[,"sample"]))
levels(cls.0) = factor((sapply(1:l2, function(j){input[[paste0("col_", j)]]})))
print(levels(cls.0))
[1] "NULL"
[1] "#FF0001" "#FF0002" "#FF0003"
如果有人能帮我解决这个问题,我将不胜感激......
【问题讨论】:
-
在 output$setting 中尝试
req()为output$setting <- renderPlot({ req(garnetRF()) l2 = length(unique((... -
没有任何变化