我想编写一个带有InputSelect小部件的闪亮应用程序,该应用程序允许用户从下拉菜单中选择当前会话中的数据框对象。
当InputSelect的选择是mtcars或iris对象时,以下代码将起作用。如何在当前会话中将选择概括到所有数据框?
library(shiny)
library(shinydashboard)
ui <-dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody(
fluidRow(box(selectInput('dflist', 'Choose Data Fame',choices=c('mtcars','Thiris')))),
fluidRow(DTOutput('tbl'))
)
)
server <- function(input, output, session) {
df=reactiveValues(df=NULL)
observeEvent(input$dflist,{
if (!is.null(input$dflist)){
df$df =get(input$dflist)
}
})
output$tbl = renderDT(head(df$df))
}
shinyApp(ui = ui, server = server)
如果当前会话中有3个数据帧df1,df2和df3,则可以将c('mtcars','iris')手动替换为c('df1','df2','df3')。但是,我想要一些代码来自动化该过程。
预先感谢您的帮助。
HHN
答案 0 :(得分:0)
如果我正确理解:
objects <- setNames(ls(), ls())
dataframes <- names(Filter(is.data.frame, lapply(objects, get)))