R Shiny中的数据过滤器的renderTable

时间:2018-02-15 21:50:17

标签: r shiny

我正在创建一个简单的应用程序,允许用户选择一个表名,这将打开过滤所选内容的数据表。

DT和DD:

DT<-sqlQuery(con,"Select distinct name from dbo.TableA")  
DD<-sqlQuery(con,"Select * from sys.TableB")

DT数据是这样的:

Name  
studenTbl  
parentTbl
classTbl 

DD数据就像这样

Table_Name|Column      |Description  
studentTbl|student_ID  |ID of student  
studentTbl|student_Name|Name of student  
studentTbl|student_Age |Age of student  
parentTbl |parentID    |ID of parent   
parentTbl |parent_Name |Name of parent

用户界面

ui <- fluidPage(
  selectInput("dataset", "Data set", as.list({DT}),
              tableOutput(outputId = "DataDictionary"))

) 

服务器

server <- function(input, output) {



  output$DataDictionary<-renderTable({DD()})


}

DD是已经在R中的数据集,其中有一个Table_Name列,应该使用输入$ dataset进行过滤。

现在,我得到了选择组合框,但是当我选择一个表名时,数据集没有显示。我该如何解决?

1 个答案:

答案 0 :(得分:1)

这是另一种尝试。你的代码中有一些错误,但是这个错误应该给你你想要的东西:

library(dplyr)
library(shiny)
DT <- data.frame(Name = c("studenTbl", "parentTbl", "classTbl"))
DD <- data.frame(Table_Name = c("studenTbl", "studenTbl", "studenTbl", "parentTbl", "parentTbl"), Column = c("student_ID", "student_Name", "student_Age", "parentID", "parent_Name"), Description = c("ID of student", "Name of student", "Age of student", "ID of parent", "Name of parent"))

ui <- fluidPage(
  selectInput("dataset", "Data set", DT$Name),
  tableOutput('DataDictionary')

) 

server <- function(input, output) {

  output$DataDictionary <- renderTable(

   DD_b <- DD %>% filter(Table_Name == input$dataset)

  )
}

shinyApp(ui, server)