簡體   English   中英

閃亮 - 如何顯示數據框?

[英]Shiny - how to display dataframe?

我正在使用 Shiny,我嘗試在 Shiny 應用程序中將數據框顯示為表格。 我的數據來自在線網站,我是通過 API 獲取的:

make_house_representative_for_state <- function(state = "WA") {
  base_uri <- "https://api.propublica.org/congress/v1/members/"
  endpoint <- paste0(base_uri, "house/", state, "/current.json")
  response <- GET(endpoint, add_headers("X-API-Key" = ProPublica_KEY)) 
  df <- content(response, "text")
  dt <- fromJSON(df)
  output <- dt$results
  return(output)
}

API 網站: https ://projects.propublica.org/api-docs/congress-api/

我將上面的代碼放在另一個 R 文件中,並將其源代碼放入我閃亮的 R 文件中。

source("source/propublica.R")

state_representatives <- make_house_representative_for_state()

ui <- fluidPage(

    theme = shinytheme("united"),

    titlePanel("Congressinal Member Information"),

    tabsetPanel(
        type = "tabs", id = "nav_bar",

        tabPanel("State Rrepresentatives",
                 sidebarLayout(
                     sidebarPanel(
                         selectInput("selected_state",
                                     label = h3("Select A State"),
                                     choices = c("AL", "AK", "AZ", "AR", "CA",
                                                 "CO", "CT", "DE", "FL", "GA",
                                                 "HI", "ID", "IL", "IN", "IA",
                                                 "KS", "KY", "LA", "ME", "MD",
                                                 "MA", "MI", "MN", "MS", "MO",
                                                 "MT", "NE", "NV", "NH", "NJ",
                                                 "NM", "NY", "NC", "ND", "OH",
                                                 "OK", "OR", "PA", "RI", "SC",
                                                 "SD", "TN", "TX", "UT", "VT",
                                                 "VA", "WA", "WV", "WI", "WY"),
                                     selected = "WA"
                         )
                     ),

                     mainPanel(
                         tableOutput("state_representatives")
                     )
                 )
        )
    )
)

server <- function(input, output) {

    output$state_representatives <- renderUI({
        state_choose <- input$selected_state
        state_name <- query_to_state_name(state_choose)
        state <- make_house_representative_for_state(state_name)
        return(state)
        # table <- summary_info(state)
    })

}
query_to_state_name <- function(query) {
  t <- paste0("\"", query, "\"")
  return(t)
}

閃亮的應用程序確實運行了,但無論我點擊哪個狀態,它都沒有顯示任何內容。 當我試圖將“state_name”更改為“WA”(API 函數中的默認值)時,shiny 告訴我:

警告:writeImpl 出錯:要寫入的文本必須是長度為一的字符向量

我真的想不通為什么。 我什至需要在閃亮的數據框架上做更多的工作,但即使是我無法解決的最基本的數據框架。

日后發帖時請提供以下信息:

  • 一個完全可重現的示例,意思是:從頭到尾的代碼(你缺少shinyapp(ui, server) ),代碼中的數據(你沒有提供 API 密鑰,所以你的代碼無法運行),以及所有庫的你使用的(我在shinythemes上出錯,因為我沒有下載包(或者不知道它來自哪個包)

至於您的問題,請使用renderTable而不是renderUI 每個渲染/輸出都是一對,並且renderUI不與tableOutput一起使用。

如果您是 Shiny 的新手,可以在線找到一些關於服務器和 UI 如何相互交互的很棒的教程(示例)。

暫無
暫無

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

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