我正在创建一个简单的应用程序,允许用户选择一个表名,这将打开过滤所选内容的数据表。
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进行过滤。
现在,我得到了选择组合框,但是当我选择一个表名时,数据集没有显示。我该如何解决?
答案 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)