嗨,我想创建一个 Shiny 的 UI,用户可以在文本框中输入数据集的名称,例如“testdataset”。然后通过单击操作按钮来选择此(示例)分析 1 或分析 2 中的特定过程。一旦发生这种情况,我希望文本框显示原始数据集名称以及所选的分析,即“testdataset-analysis1”。我在下面构建了示例 UI,但我对 R 很陌生,而且不知道如何捕获事件并在 UI 和服务器之间传递变量并渲染它们。有人可以帮忙吗?
example of what i would like to achieve
图书馆( Shiny )
#====shiny UI
shinyUI(pageWithSidebar(
headerPanel("Shiny action button input "),
sidebarPanel(
textInput(inputId="data1", label = "Input data name"),
actionButton("Ana1", "analysis1"),
actionButton("Ana2", "analysis2")
),
mainPanel(
#
)
))
#====shiny server
shinyServer(
function(input, output) {
output$data1 <- renderText({input$data1})
})
}
)
runApp()#to run application
最佳答案
这不是一个完整的答案,但最好亲自尝试一下。一般来说,使用updateTextInput
要更新文本,请使用 observeEvent
要观察按钮上的单击操作,请使用 input$name
捕获输入值,并使用 output$name <- render...
设置输出。有几个updateInput
您可以在官方 Shiny 引用资料中找到这些方法。 http://shiny.rstudio.com/reference/shiny/latest/
例如,在您的服务器代码中
function(session, input, output) {
observeEvent(input$Ana1, {
name <- paste(input$data1, "analysis 1")
updateTextInput(session, "data1", value=name)
}
}
关于button - 在 Shiny 的情况下,我如何使用操作按钮的值更新输入文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36379112/