अगर प्रविष्टि "x" या "y" है तो मैं InfoBox का रंग बदलने की कोशिश कर रहा हूं। मुझे यह प्रश्न यहाँ मिला: मैं प्रदर्शित मान के आधार पर शाइनीडैशबोर्ड में किसी इन्फोबॉक्स का रंग कैसे बदलूं। दिया गया उत्तर संख्यात्मक डेटा के लिए काम करता है, लेकिन मैं स्ट्रिंग के साथ काम नहीं कर सकता। यहां एक प्रतिलिपि प्रस्तुत करने योग्य कोड है जो संख्यात्मक मानों के साथ काम करता है।

```{r library and source, eval= FALSE }

library(shiny)
library(shinydashboard)

```


```{r UI, eval = FALSE}
ui <- dashboardPage(
  #Header
  dashboardHeader(title = "dashboard"),
  
  #Sidebar with download button
  dashboardSidebar(width = 130),
  
  #Body
  dashboardBody ((box
                  (
                    width = 6,
                    textInput("wt1", " Choose wt:", "")
                  )),
                 
                 infoBoxOutput("Output"))
)

```

```{r Server, eval = FALSE}

server <- function(input, output, session) {
  output$Output <- renderInfoBox({
    InfoTotal <- paste(input$wt1, "")
    
    if (input$wt1 > 2)
    {
      infoBox(
        "Change colors, please",
        InfoTotal,
        icon = icon("tint", lib = "glyphicon"),
        color = "red"
      )
    }
    else
      
    {
      infoBox(
        "Change colors, please",
        InfoTotal,
        icon = icon("tint", lib = "glyphicon"),
        color = "blue"
      )
    }
    
    
  })
  
  
}

shinyApp(ui, server)

```

साथ ही, यह मेरे लिए काम नहीं करता है मैं > 2 के बजाय if (input$wt1 = 2) कोशिश करता हूं। कोई विचार?

0
ViviG 25 नवम्बर 2020, 02:58

1 उत्तर

सबसे बढ़िया उत्तर

दो समान चिह्नों का प्रयोग करें, उदा। if (input$wt1 == 2) या if (input$wt1 == "red")

R, = के साथ == के साथ अलग व्यवहार करता है। पहला चीजों को असाइन करने के लिए है जबकि दूसरा यह जांचने के लिए है कि क्या दो चीजें बराबर हैं।

1
Ash 25 नवम्बर 2020, 00:31