2016-04-12 11 views
1

こんにちは、私はかなりシャイニーに新しいです。私はテーブルにデータを表示する私のユーザーのための2つのインタラクティブなselectInputsを作成しようとしています。ここに私のコードは次のようになります。 ui.RR輝いている:反応している複数の入力{}

library(shiny) 

shinyUI(fluidPage(

    sidebarLayout(
    sidebarPanel(

     selectInput("var", 
        label = "Country", 
        choices = c("ALL", "A2", "AE")), 
     selectInput("plat", 
        label = "Platform", 
        choices = c("ALL", "Android", "IPhonePlayer")) 
    ) 
    ), 
    mainPanel(

     tableOutput(
     "view")) 
) 
)) 

server.R

library(shiny) 
library(ggplot2) 
library(dplyr) 
df <- readRDS("data/df.rds") 

shinyServer(function(input, output) { 

datasetInput <- reactive({ 

    switch(input$var, 
      "ALL" = df, 
      "A2" = df %>% filter(country == "A2"), 
      "AE" = df %>% filter(country == "AE")) 


    switch(input$plat, 
      "ALL" = df, 
      "Android" = df %>% filter(platform == "Android"), 
      "IPhonePlayer" = df %>% filter(platform == "IPhonePlayer")) 



    }) 


    output$view <- renderTable({head(datasetInput())}) 

}) 

私は、コードを実行すると、国のために、何も時に起こりませんが、唯一のプラットフォーム上の選択は、正常に動作私は選択をする。私がここで作っている愚かな間違いに関するアイデア?あまり前もってありがとう!

答えて

1

switchの結果をdfに割り当てるようにしてください。現在、2つのswitchは接続されておらず、reactiveは2つ目の結果のみを返します。

df <- switch(input$var, 
     "ALL" = df, 
     "A2" = df %>% filter(country == "A2"), 
     "AE" = df %>% filter(country == "AE")) 
+0

あなたはより詳細ことはできますか?私はあなたが示唆したようにそれを割り当てようとしましたが、同じ結果を得ました。私は間違った方法で割り当てられているに違いない。ありがとうございました! – cat88

+0

@ cat88私はちょうど私の答えを編集しました –

+0

ありがとう!それは今働きます!あなたは素敵な一日を! – cat88

1

ない何を求めているが、私はあなたがこのようなコードを向上させることができると思います。

datasetInput <- reactive({ 
    df %>% 
    filter(
     (input$var == 'ALL' | country == input$var) & 
     (input$plat == 'ALL' | country == input$plat) 
    ) 
}) 
+0

ありがとうございました!これは本当に私にいくつかの問題を救う。 – cat88

関連する問題