R闪亮-检测是否使用了滑块或单选按钮
我有一个闪亮的脚本,有许多单选按钮和滑块。如何检测用户是单击单选按钮还是滑块。我不在乎哪个特定的滑块或单选按钮 下面是一个带有注释的简单示例R闪亮-检测是否使用了滑块或单选按钮,r,shiny,R,Shiny,我有一个闪亮的脚本,有许多单选按钮和滑块。如何检测用户是单击单选按钮还是滑块。我不在乎哪个特定的滑块或单选按钮 下面是一个带有注释的简单示例 library(shiny) ui <- fluidPage( headerPanel("slider vs radio button"), sidebarPanel( sliderInput("a", label = "Select an input to display",
library(shiny)
ui <- fluidPage(
headerPanel("slider vs radio button"),
sidebarPanel(
sliderInput("a",
label = "Select an input to display",
min = 0, max = 100, value = 50),
radioButtons("detail", "Detail",
choiceNames = list(
"Low",
"Medium",
"High"
),
choiceValues = list(
"1", "8", "12"
), inline = TRUE, selected = "8")
),
mainPanel(h1(textOutput("text")))
)
server <- function(input, output) {
output$text <- renderText({
paste(input$a, ",", input$detail)
})
# If user moved slider say "slider"
# If user clicked radio button say "radio"
}
shinyApp(ui = ui, server = server)
库(闪亮)
ui下面的服务器代码说明了两种情况:
-如何对单个输入使用观察者
-如何将两个输入组合成新的无功值
server <- function(input, output) {
output$text <- renderText({
paste(input$a, ",", input$detail)
})
rv <- reactiveValues(
clicked = NULL
)
# If user moved slider say "slider"
observeEvent({
input$a
# add other sliders here
}, {
cat("individual: slider\n")
rv$clicked <- NULL # reset if previous "slider"
rv$clicked <- "slider"
}, ignoreInit = TRUE)
# If user clicked radio button say "radio"
observeEvent(input$detail, {
cat("individual: radio\n")
rv$clicked <- NULL # reset if previous "radio"
rv$clicked <- "radio"
}, ignoreInit = TRUE)
observeEvent(rv$clicked, {
cat("combined:", rv$clicked, "\n")
})
}
服务器正常,谢谢迈克。快速提问。我不熟悉结构函数({…},{…}),就像你对第一个observeEvent所做的那样。你能解释一下吗?它是observeEvent
特定的。如果你看一下,第一个参数eventExpr
可以是任何表达式(如果我们使用{
),它可以包含几个反应式,例如{input$a input$b}
-当a
或b
(或两者)更改时,它不会做任何事情,只会触发观察者。第二个{…}
您已经熟悉,您将其用于输出$text
,它显示在帮助示例中。