2016-09-23 7 views
0

チェックボックスの選択時にテーブルを印刷しようとしています。これは正常に機能しますが、すべての列、つまり「名前」と「色」のみを印刷したいとは思いません。 残念ながら、特定の列を表示するコマンドを見つけることができません。私はinput$colorが問題を解決できると思ったが、スクリプトを正しく実行することができなかった。ここで は私の最低限の例です。R Shiny:選択した列のテーブルを印刷

mydat <- data.table(id=c(1,2,3,4), 
       londd=c(20, 38, 96, 32), 
       latdd=c(60, 56, 30, 31), 
       material=c("stone", "water,sand", "sand", "wood"), 
       application=c("a","b","c","d"), 
       name=c("1","2","3","4"), 
       color=c("red","green","blue","yellow")) 

#Set up ui 
ui <- shinyUI(fluidPage(
sidebarPanel(h5("", width=2), 
     checkboxGroupInput(inputId="MatFlag",label=h4("Material"), 
      choices=setNames(object=c("stone","water","sand", "wood"), 
      nm=c("stone", "water", "sand", "wood")) 
      ), 
      checkboxGroupInput(inputId="AppFlag",label=h4("Application"), 
      choices=setNames(object=c("a","b","c","d"), 
      nm=c("a","b","c","d")) 
      ), 
      position="left"), 

#App mainPanel content and styles 
mainPanel("Plot_and_table","Plot and Table", 
"button_plot_and_table",size="large",dataTableOutput("TestTable")))) 

#Set up server 
server <- function(input, output){ 

#Filter data 
datFilt <- reactive({ 
MatSearch <- paste0(c('xxx',input$MatFlag),collapse = "|") 
MatSearch <- gsub(",","|",MatSearch) 
mydat[grepl(MatSearch,material) & application %in% input$AppFlag] 
}) 

output$TestTable <- renderDataTable({datFilt() 
}, options = list(pageLength=5)) 


} 

#Run app 
shinyApp(ui = ui, server = server) 

答えて

0

だけサブセット場合あなたが望むすべて、これは問題ないはずです。

datFilt <- reactive({ 
    MatSearch <- paste0(c('xxx',input$MatFlag),collapse = "|") 
    MatSearch <- gsub(",","|",MatSearch) 
    testdata <- mydat[grepl(MatSearch,material) & application %in% input$AppFlag] 
    testdata[,c("name","color"), with=FALSE] 
    }) 
+0

はい、これは私が必要なコードです。どうもありがとう! – ChMoe

関連する問題