Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R闪亮-检测是否使用了滑块或单选按钮_R_Shiny - Fatal编程技术网

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
,它显示在帮助示例中。