我遇到了与闪亮/ R相关的小问题。
我正在阅读一个文本文件,并将grep搜索返回的选择性列名显示在动态应用程序中。为此,我使用的是dynamicUI。
读入文件后,以下函数在server.R中运行。它检查特定的名称,并使用uiOutput在UI上显示。无论用户选择了哪些列名,它们都会被发送到另一个函数进行数据处理,并将它返回到主面板上。
output$Bait <- renderUI({
data <- input.data();
if(is.null(data)) return()
colnames <- names(data)
colnames = colnames[grep("*LFQ*",colnames,ignore.case=TRUE)]
# Creating the checkboxes using the above colnames
checkboxGroupInput("bait", "Choose Bait LFQ columns",
choices = colnames,
selected = colnames)
})
shinyUI(
sidebarPanel(
uiOutput("Bait"),
),
mainPanel(
plotOutput(outputId = 'plot'),
)
)
一切都很好,我想要创建的是复选框的操作按钮。有些文件较大且列名称列表的长度> 60,因此只要单击一个复选框,整个函数就会运行以进行处理并显示一个图表。当用户必须取消选择/选择10列以上时,这就变得不必要了。
一个简单的解决方法是,我保持选择= NULL但我想要的是在checkboxGroupInput之后添加一个actionButton,这样用户可以选择与checkBoxs一样多的但是该功能仅在通过actionButton按下GO按钮时运行。如果在checkbocGroupInput之后添加一个actionButton控件,它就不会&#39;的工作原理。
有人可以在这方面指导我。经过一段时间的努力,现在我有点失落。
由于
答案 0 :(得分:1)
你看过?isolate
了吗?假设我希望仅在单击initialFunction()
时才评估函数input$actionButton
。
observe({
input$actionButton # everything that triggers initialFunction() should come before isolate()
isolate({
# everything that should not trigger initialFunction() should come inside isolate()
initialFunction()
})
})