您好我想弄清楚如何使用我生成的用户输入来调用R闪亮的现有表。每个用户输入选项是一个表的名称,我想使用此输入然后调用所选的表。
ui=fluidPage(
selectInput(inputId="location",label="Please Choose location", choices=c("Dublin"="Dublin","Cork"="Cork","Galway"="Galway","Belfast"="Belfast")),
tableOutput("table")
)
server=function(input, output){
input=reactive(input$location)
output$table<-renderTable(input())
}
然而,这只是创建一个新表,其中一行包含用户输入。
答案 0 :(得分:0)
您可以使用get()
获取data.frame
。另请注意,input
不是反应变量的好名称,因为它已经定义,因此我重命名为inputx
。在这种情况下,您甚至可以在没有被动反应的情况下使用output$table<-renderTable({get(input$location)})
希望这有帮助!
Dublin=Head(mtcars,5)
Cork=head(mtcars,10)
Galway=head(mtcars,15)
Belfast=head(mtcars,2)
ui=fluidPage(
selectInput(inputId="location",label="Please Choose location",
choices=c("Dublin"="Dublin","Cork"="Cork","Galway"="Galway","Belfast"="Belfast")),
tableOutput("table") )
server=function(input, output){
inputx=reactive({get(input$location)})
output$table<-renderTable(inputx())
}
shinyApp(ui,server)
最干净的解决方案可能是将数据框存储在列表中,并按如下方式从该列表中进行子集化:
Dublin=Head(mtcars,5)
Cork=head(mtcars,10)
Galway=head(mtcars,15)
Belfast=head(mtcars,2)
mylist = list(Dublin=Dublin,Cork=Cork,Galway=Galway,Belfast=Belfast)
ui=fluidPage(
selectInput(inputId="location",label="Please Choose location",
choices=c("Dublin"="Dublin","Cork"="Cork","Galway"="Galway","Belfast"="Belfast")),
tableOutput("table") )
server=function(input, output){
output$table<-renderTable(mylist[input$location])
}
shinyApp(ui,server)