SelectInput: Как сделать выбор равным списку всех фреймов данных в текущей среде? - PullRequest
0 голосов
/ 06 мая 2019

Я хочу написать блестящее приложение с виджетом 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

1 Ответ

0 голосов
/ 07 мая 2019

Если я правильно понимаю:

objects <- setNames(ls(), ls())
dataframes <- names(Filter(is.data.frame, lapply(objects, get)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...