0

データフレーム book3 があります。地域、国、評価の 3 つの列があります。

Region<- c("Americas", "Asia Pacific","Asia Pacific", "EMEA", "EMEA")
Country<- c("Mexico", "China","India", "Germany", "Spain" )
Rating<- c(5,3,3,2,4)
book3<- data.frame(Region, Country, Rating)

ドロップダウンの「南北アメリカ」地域から選択すると、メキシコのみが表示され、アジア太平洋を選択すると中国とインドが表示され、EMEA の場合はドイツとスペインが表示されます。

簡単に言えば、地域と国の依存ドロップダウンを作成したいと思います。国ドロップダウンには、地域に基づいて国が表示されます。

評価列に基づいてプロットも生成できるはずです

私は自分のコードを ui.R と server.R に持っています。何か提案してください

Ui.R

library(shiny)
ui <- fluidPage(
titlePanel("Test Dashboard "),
 sidebarLayout(
sidebarPanel(
 uiOutput("data1"),   ## uiOutput - gets the UI from the server
 uiOutput("data2")
 ),    
mainPanel()   
))

サーバー.R

library(shiny)
shinyServer(function(input, output, session) {
  Region<- c("Americas", "Asia Pacific","Asia Pacific", "EMEA", "EMEA")
 Country<- c("Mexico", "China","India", "Germany", "Spain" )
Rating<- c(5,3,3,2,4)
  book3<- data.frame(Region, Country, Rating, stringsAsFactors = F)
output$data1 <- renderUI({
 selectInput("data1", "Select Region", choices = c(book3$Region))
 })

output$data2 <- renderUI({

selectInput("data2", "select Country", choices = c(book3$Country))
 })
})
4

1 に答える 1

0

それは非常に簡単で、あなたはほとんどそこにいます:

library(shiny)
test <- "http://www.score11.de"
# Define UI for application that draws a histogram


ui <- fluidPage(
  titlePanel("Test Dashboard "),
  sidebarLayout(
    sidebarPanel(
      uiOutput("data1"),   ## uiOutput - gets the UI from the server
      uiOutput("data2")
    ),    
    mainPanel(plotOutput("plot"))   
  ))


server <- shinyServer(function(input, output, session) {
  Region<- c("Americas", "Asia Pacific","Asia Pacific", "EMEA", "EMEA")
  Country<- c("Mexico", "China","India", "Germany", "Spain" )
  Rating<- c(5,3,3,2,4)
  book3<- data.frame(Region, Country, Rating, stringsAsFactors = F)
  output$data1 <- renderUI({
    selectInput("data1", "Select Region", choices = c(book3$Region))
  })

  output$data2 <- renderUI({
    selectInput("data2", "select Country", choices = book3[which(book3$Region == input$data1),]$Country)
  })

  output$plot <- renderPlot({
    barplot(mean(book3[which(book3$Country == input$data2),]$Rating), ylim=c(0,10), xlim=c(0,2), width=0.5)
  })


})

# Run the application 
shinyApp(ui = ui, server = server)

私はあなたの最終的なアプリケーションを知らないので、プロットのタイトルは評価列に依存します.

于 2016-06-28T08:20:31.840 に答える