如何将一个 R Shiny 输入的输出提供给另一个

问题描述

我想弄清楚如何将一个 Shiny 输入的值传递给另一个。我的目标是将滑块的值认为与其上方下拉列表中的选择相对应的值。也就是说,我希望有一种方法可以将 selectinput()(本质上是 input$Character)的选择传递给 sliderinput() 中的 value 参数。我想尝试类似下面的代码,但它完全失败了。

library(shiny)

ui <- fluidPage(
  sidebarPanel(
    selectInput(inputId="Character",label="Choose Your Character",choices=starwars$name),sel = starwars %>% filter(name==input$name) %>% select(height),sliderInput(inputId="height",label="Choose character height ",min=0,max=max(starwars$height),value=sel)
  ),mainPanel(
    verbatimtextoutput('text')
    )
)

server <- fuction(input,output) {
  output$text <- renderPrint({
    print(input$height)
    })
}

shinyApp(ui=ui,server=server)

谢谢!

解决方法

不要害怕使用服务器端处理,它非常简单!

library(shiny)

ui <- {
    fluidPage(
        selectInput("character","Choose your character",choices = starwars$name
        ),uiOutput("height_ui"),verbatimTextOutput('text')
    )
}

server <- function(input,output,session) {
    
    output$height_ui <- renderUI({

        selected_character_height <- starwars %>%
            filter(name == input$character) %>%
            pull(height)

        sliderInput("height","Choose character height ",min = 0L,max = max(starwars$height,na.rm = TRUE),value = selected_character_height
        )
    })
    
    output$text <- renderPrint({
        print(input$height)
    })
}

shinyApp(ui,server)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...