Forum: PC-Programmierung R und Shiny selectInput


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mathias G. (motze)


Lesenswert?

Hallo geliebtes Forum,

Ich möchte in R Studio und Shiny eine selectInput erstellen, dessen 
Auswahl eine Spalte in meinen Dataframe auf ein Histogramm ausgegeben 
werden.

Ich habe zwei Datein einmal ui.r und app.r

Hier ist die ui.r
1
library(shinydashboard)
2
3
dashboardPage(
4
  
5
  dashboardHeader(),
6
  
7
  dashboardSidebar(),
8
  
9
  dashboardBody()
10
)

und hier die app.
1
library(shiny)
2
library(shinydashboard)
3
4
ui <- dashboardPage(
5
  dashboardHeader(title = "Test"),
6
  
7
  dashboardSidebar( 
8
    selectInput("Messwerte", "Messwerte:",
9
                c("Daten1" = "Beispiel1",
10
                  "Daten2" = "Beispiel2",
11
                  "Daten3" = "Beispiel3"))  
12
  ),
13
  
14
  dashboardBody( )
15
)
16
17
server <- function(input, output) {
18
  hist(Daten[input$Messwerte])
19
}
20
21
shinyApp(ui, server)

Ich hoffe es wird klar was ich vorhabe. Wie kann ich das am besten 
umsetzen. So wie ich es mache geht es anscheinend schonmal nicht.

MfG
Mathias

von Mathias G. (motze)


Lesenswert?

Ich habe selber die Lösung gefunden, falls andere dieses Problem mal 
haben hier ist meine Lösung (bestimmt nicht die Beste)

app.r
1
library(shiny)
2
library(shinydashboard)
3
4
ui <- dashboardPage(
5
  dashboardHeader(title = "Test"),
6
  
7
  dashboardSidebar( 
8
    selectInput("Messwerte", "Messwerte:", choices = c("Daten_1", "Daten_")),
9
10
  dashboardBody(
11
    plotOutput("hist", width = "700px")
12
  )
13
)
14
15
server <- function(input, output) {
16
  
17
  output$hist <- renderPlot(
18
    hist(Daten[,input$Messwerte])
19
  )
20
}
21
22
shinyApp(ui, server)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.