Shiny R中的交互式table

vwkv1x7d  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(159)

我有这个数据框:(Sites_daily_avg)

city_Name  day      wind         temperature   
London      1          1                   2                          
London      2          2                   2                         
London      3          3                   3                          
London      4          8                   9                          
....

我试图创建一个表,提供每个选定站点的所有天气变量的每日平均摘要。
我做了什么

fluidPage(
  titlePanel("Weather "),
  sidebarLayout(
    sidebarPanel(  
      selectizeInput("cities",
                     "city to compare",choices= Cities$City_Name)),
                     

mainPanel(
      tabsetPanel(
        tabPanel("City",
                 tableOutput(outputId = "daily_sum")                 
                 
        )

 )
    ) )
)
       


shinyServer(function(input, output) {
output$daily_sum <- renderTable({
    cityFilter <- subset(city_daily_avg, city_daily_avg$City_Name== input$City) %>%
      select(City_Name, day,  wind, temperature)})
  
})
w80xi6nr

w80xi6nr1#

如果选择了多个站点,请在subset中使用%in%,因为==是元素级运算符,如果==的rhs上的元素数不是1或与lhs的长度不同,则可能会返回意外的TRUE/FALSE

SiteFilter <- subset(Sites_daily_avg, Site_Name %in% input$sites)

如果我们需要列为integer

shinyServer(function(input, output) {
output$daily_sum <- renderTable({
    SiteFilter <- subset(Sites_daily_avg, Site_Name %in% input$sites) %>%
      select(Site, Site_Name, day, air_temperature_mean, wind_speed_mean, rltv_hum_mean, visibility_mean) %>%
      mutate(across(c(Site, day), as.integer))
 })
  
})

相关问题