簡體   English   中英

為什么這個 Shiny App 不使用 RStudio 顯示數據框?

[英]Why does this Shiny App not display dataframe using RStudio?

我有一個數據框列表ls_df ,其中包含來自datasets包的兩個數據框。

我正在嘗試使用下面的代碼將這兩個數據幀加載到 Shiny 應用程序中。 但是,它不起作用,錯誤消息no item called "ls_df" on the search list 有誰知道如何解決?

ls_df <- list(datasets::airmiles,
datasets::AirPassengers)


ui <- fluidPage(
  selectInput("ls_df", label = "Dataset", choices = ls("ls_df")),
  verbatimTextOutput("summary"),
  tableOutput("table")
)

server <- function(input, output, session) {
  output$summary <- renderPrint({
    dataset <- get(input$ls_df, "ls_df")
    summary(dataset)
  })
  
  output$table <- renderTable({
    dataset <- get(input$ls_df, "ls_df")
    dataset
  })
}
shinyApp(ui, server)

該列表需要名稱:

library(shiny)
ls_df <- list(airmiles=datasets::airmiles,AirPassengers=datasets::AirPassengers)

ui <- fluidPage(
  selectInput("ls_df", label = "Dataset", choices = names(ls_df)),
  verbatimTextOutput("summary"),
  tableOutput("table")
)

server <- function(input, output, session) {
  output$summary <- renderPrint({
    dataset <- ls_df[[input$ls_df]]
    summary(dataset)
  })
  
  output$table <- renderTable({
    dataset <- ls_df[[input$ls_df]]
    dataset
  })
}
shinyApp(ui, server)

錯了兩點:

  1. 您的列表需要名稱,如 PorkChop 的回答中所述。 如果這是唯一需要的更改,那么 PorkChop 的回答就足夠了。

  2. get(input$ls_df, "ls_df")是一個錯誤。 不過,這應該很清楚,因為它會阻止閃亮的界面啟動。 這個錯誤是因為lsgetenvir=參數需要一個對象,而不是對象的character名。 可以去“開始”並使用ls(get("ls_df"))和類似的get ,但這似乎幾乎沒有必要或有用。)

     ls_df <- list(airmiles=datasets::airmiles, # <-- named list AirPassengers=datasets::AirPassengers) ui <- fluidPage( selectInput("ls_df", label = "Dataset", choices = ls(ls_df)), # <-- no quotes verbatimTextOutput("summary"), tableOutput("table") ) server <- function(input, output, session) { output$summary <- renderPrint({ dataset <- get(input$ls_df, ls_df) # <-- no quotes summary(dataset) }) output$table <- renderTable({ dataset <- get(input$ls_df, ls_df) # <-- no quotes dataset }) }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM