2017-11-08 7 views
1

Rシャイニーで選択したデータの選択した機能を表示したい。 データを選択するには、選択入力(反応性あり)を使用し、選択したデータセットの機能を使用するには、checkboxGroupInputを使用します。Rシャイニーで選択したデータセットの機能を表示する方法

私のコードに間違いがあります。ここに私のコードはどのように私はそれを動作させることができますか?

Server- Code 
Data_to_display <<- reactive({ 
    switch(input$Data, 
      "dt_1" = Data1, 
      "dt_2" = Data2) 
    }) 

output$DisplayData <- DT::renderDataTable({ 
     DT::datatable(Data_to_display(), filter="top") 
    }) 

UI.Code 
------ 

sidebarLayout( 
    sidebarPanel( 
     checkboxGroupInput("show_vars", "Gösterilecek özellikler:", 
         names(Data), selected = names(Data)), 
     selectInput("Data", "Choose data:", choices = c("dt_1","dt_2"), selected = "dt_1") 
    ), 

    mainPanel(
     DT::dataTableOutput("DisplayData") 
    ) 
+0

は、あなたのcompletコード –

答えて

0

あなたはuiに反応性の入力(Data)を呼んでいるように見えます。 To build dynamic UI that reacts to user inputの場合は、serverにUI要素を作成し、uiに要素を出力することができます。

しかし、あなたの正確な目標はわかりません。データテーブル内の列を表示/非表示する場合は、DT extension (colvis) for exactly that purposeがあります。

私は動的にレンダリングされたチェックボックスを備えたものと、列を隠す/表示するためのDT拡張子を持つものを以下に2つ追加しました。


1)動的に作成したチェックボックス:

Data1 <- iris 
    Data2 <- mtcars 

    ui <- fluidPage(
     sidebarLayout( 
      sidebarPanel( 
       selectInput("Data", "Choose data:", 
          choices = c("dt_1","dt_2"), selected = "dt_1"), 
       ## render dynamic checkboxes 
       uiOutput("show_vars") 
       ), 

      mainPanel(
       DT::dataTableOutput("DisplayData") 
      ) 
     ) 
    ) 

    server <- function(input, output) { 

     Data_to_display <<- reactive({ 
      switch(input$Data, 
        "dt_1" = Data1, 
        "dt_2" = Data2) 
     }) 

     ### create dynamic checkboxes 
     output$show_vars <- renderUI({ 
      checkboxGroupInput("show_vars", "Gösterilecek özellikler:", 
           choices = names(Data_to_display()), 
           selected = names(Data_to_display())) 
     }) 

     output$DisplayData <- DT::renderDataTable({ 
      DT::datatable(Data_to_display(), filter="top") 
     }) 
    } 

    shinyApp(ui, server) 

2)DT拡張colvis:

Data1 <- iris 
Data2 <- mtcars 

ui <- fluidPage(
    sidebarLayout( 
     sidebarPanel( 
      selectInput("Data", "Choose data:", 
         choices = c("dt_1","dt_2"), selected = "dt_1")), 
     mainPanel(
      DT::dataTableOutput("DisplayData") 
     ) 
    ) 
) 

server <- function(input, output) { 

    Data_to_display <<- reactive({ 
     switch(input$Data, 
       "dt_1" = Data1, 
       "dt_2" = Data2) 
    }) 

    ### hide/show columns with built-in DT extension 
    output$DisplayData <- DT::renderDataTable({ 
     DT::datatable(Data_to_display(), filter = "top", 
         extensions = 'Buttons', 
         options = list(dom = 'Bfrtip', buttons = I('colvis'))) 
    }) 
} 

shinyApp(ui, server) 
+0

を示してもらえ私はソリューションの両方をしようと試みました。彼らはサンプルデータセットで作業しました。しかし、私はそれを私のデータセットに適用しようとしたときに動作しませんでした(選択した入力からデータセットを変更しようとしましたが、変更はありませんでした)。あなたはそれについて考えていますか? –

+0

@ismailduruデータセットやコードに加えた編集内容を共有できますか? – blondeclover

関連する問題