Используйте input$ внутри inputPanel в документе rmarkdown

#r #shiny #r-markdown

#r #блестящий #r-markdown

Вопрос:

Я хотел бы создать панель ввода с двумя числовыми вводами (a amp; b). Максимальное значение numericInput b должно соответствовать значению из numericInput a .

 ---
title: "test input"
runtime: shiny
output: html_document
---

```{r, echo = FALSE}
inputPanel(
  numericInput("a", "A", 80, 
               min = 1, max = 100),

  numericInput("b", "B", 15, 
               min = 1, max = input$a)
)
```
 

Это приводит к ошибке:

Операция не разрешена без активного реактивного контекста.

Ответ №1:

Без использования shinyApp:

 ```{r, echo=FALSE}
  inputPanel(
    numericInput("a", label="A", min = 1, max = 100, value = 80),
    uiOutput('a')
)

  output$a <- renderUI({
    numericInput("b", label= "B", min = 1, max = input$a, value = 15)
 }
)
```
 

Ответ №2:

Привет, ты можешь сделать как в классическом блестящем приложении :

 ```{r, echo = FALSE}
shinyApp(

  ui = fluidPage(
    inputPanel(
      numericInput("a", "A", 80, 
               min = 1, max = 100),
      uiOutput("numericInput_reactive")
      )
  ),

  server = function(input, output) {
    output$numericInput_reactive <- renderUI({
      numericInput("b", "B", 15, 
               min = 1, max = input$a)
    })
  }
)
```