r-selectInput Selected不显示数据帧中的数据(flexdashboard,闪亮)



我在flexdashboard中使用了一个内联Shiny应用程序,希望通过下拉菜单显示一个数据表,并自动显示特定年份的数据。下拉菜单出现,但没有填充我选择的默认年份2022。此外,默认情况下不会显示任何数据表。如果我使用下拉菜单,我可以选择一年,然后它会填充一个数据表。感谢您的帮助!

代码在https://whheresourceusage.shinyapps.io/dash/#section-电子期刊。我将在这里复制一个代码片段:

title: "Electronic Resource Usage"
output: 
flexdashboard::flex_dashboard:
css: my-custom-rules.css
theme: bootstrap
logo: primary.png
favicon: fav.png
orientation: rows 
vertical_layout: scroll
social: ["twitter", "menu"]
source_code: embed 
includes:
in_header: GA_Script.html
runtime: shiny
Top10v <- read_excel("dashdata_FY22.xlsx", sheet = "Top10vid")
shinyApp(
ui <- fluidPage(
selectInput(inputId = "Year", label = "Choose a year", choices = c(Top10v$Year), selected = "2022", multiple = FALSE),
DT::DTOutput(outputId = "table3", height = "100%")
), 

server <- function(input, output) {
output$table3 <- DT::renderDT({
filter(Top10v, Year == input$Year)
}, options = list(height = "550px", scrollY = "550px", scrollCollapse = TRUE, dom = "t"))
}
)

";Top10vid";有问题的dashdata_FY22.xlsx文件的表格看起来像(每年10个条目(:dashdata_FY22.xlsx 数据结构的屏幕截图

以下是一些使用dput并从控制台复制的示例代码:

> library(readxl)
> Top10v <- read_excel("/Users/...path.../dashdata_FY22.xlsx", sheet = "Top10vid")
> dput(Top10v)                                                                                                                                                                                   
structure(list(Year = c(2022, 2022, 2022, 2022, 2022, 2022, 2022, 
2022, 2022, 2022, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 
2021, 2021, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 
2020), Titles = c("The Inventor: Out for Blood in Silicon Valley", 
"Indecent", "Group Counseling, Process and Technique", "No", 
"Antigone", "Falsettos", "Ethnic Notions", "Persepolis", "The Gospel According to St. Matthew", 
"Dancing: The Individual and Tradition", "Brief Counseling: The Basic Skills", 
"Portrait of Jason", "Ethnic Notions", "Black Girl", "The Inventor: Out for Blood in Silicon Valley", 
"Dancing: The Individual and Tradition", "TEDTalks: Alicia Garza, Patrisse Cullors, and Opal Tometi: An Interview with the Founders of Black Lives Matter", 
"Winsor McCay: The Master Edition", "19th Century American Whaleman", 
"Killer of Sheep", "Brief Counseling: The Basic Skills", "Animal Kingdom", 
"Manga Ulysses", "Indecent", "Buried Child", "Falsettos", "Counseling Gay and Lesbian Youth", 
"Turbans", "Coming Home", "Any Day Now"), Publisher = c("Infobase", 
"BroadwayHD", "vcYES Productions", "Sony Pictures Classics", 
"Royal National Theatre", "BroadwayHD", "Infobase", "Sony Pictures Classics", 
"Infobase", "ArtHaus Musik", "Microtraining Associates", "Milestone Films", 
"Infobase", "Infobase", "Infobase", "ArtHaus Musik", "Infobase", 
"Milestone Films", "A&E Television Networks", "Milestone Films", 
"Microtraining Associates", "Sony Pictures Classics", "Contemporary Arts Media", 
"BroadwayHD", "BroadwayHD", "BroadwayHD", "Microtraining Associates", 
"Filmakers Library", "Sony Pictures Classics", "Music Box Films"
), Platform = c("Films On Demand", "Alexander Street Press", 
"Alexander Street Press", "Alexander Street Press", "Alexander Street Press", 
"Alexander Street Press", "Films On Demand", "Alexander Street Press", 
"Films On Demand", "Alexander Street Press", "Alexander Street Press", 
"Alexander Street Press", "Films On Demand", "Films On Demand", 
"Films On Demand", "Alexander Street Press", "Films On Demand", 
"Alexander Street Press", "Alexander Street Press", "Alexander Street Press", 
"Alexander Street Press", "Alexander Street Press", "Alexander Street Press", 
"Alexander Street Press", "Alexander Street Press", "Alexander Street Press", 
"Alexander Street Press", "Alexander Street Press", "Alexander Street Press", 
"Alexander Street Press"), `Number of items requested` = c(796, 
342, 253, 206, 188, 176, 167, 149, 140, 134, 356, 288, 271, 235, 
225, 181, 169, 166, 163, 153, 279, 153, 150, 147, 125, 120, 110, 
92, 80, 79)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-30L))

试试这个

library(tidyverse)
choices <- unique(Top10v$Year)
shinyApp(
ui <- fluidPage(
selectInput(inputId = "Year", label = "Choose a year", choices = choices, selected = choices[1], multiple = FALSE),
DT::DTOutput(outputId = "table3", height = "100%")
), 

server <- function(input, output) {
df <- reactive(Top10v %>%  filter(Year == input$Year) )
output$table3 <- DT::renderDT({
df()
}, options = list(height = "550px", scrollY = "550px", scrollCollapse = TRUE, dom = "t"))
}
) 

相关内容

最新更新