You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将基于cereal数据集的Shiny应用代码修改为适配airquality数据集

代码调整方案

异常原因

你运行报错的核心原因是仅替换了数据集名称,没有同步替换字段名,UScereal的protein、calories、mfr字段在airquality数据集中不存在,导致绘图逻辑报错。

核心修改点

  • 替换所有UScereal数据集引用为R内置airquality数据集,不需要用到MASS包的前提下可删除对应加载语句
  • 匹配airquality的实际字段调整绘图参数:x轴选Wind(风速)、y轴选Temp(温度)、点形状映射Month(月份)
  • 移除ui与server逻辑之间冗余的head(airquality)调试语句
  • 可选增加NA值过滤逻辑,避免绘图时出现缺失值警告

修改后可直接运行的完整代码

library(shinydashboard)
# 原MASS包仅用于加载UScereal数据集,替换后无依赖可删除
# library(MASS)

ui <- dashboardPage(
    dashboardHeader(title = "空气质量交互式绘图"),
    dashboardSidebar(collapsed = TRUE),
    dashboardBody(
        fluidRow(
            plotOutput("airqualityPlot",
                       click = "single_click",
                       hover = "hovering",
                       brush = "brushing")
        ),
        box(verbatimTextOutput("coords"), width = 8)
    )
)

server <- function(input, output) {
    # 预处理:过滤缺失值避免绘图警告
    aq_data <- na.omit(airquality)
    
    output$airqualityPlot <- renderPlot({
        plot(x = aq_data$Wind, y = aq_data$Temp,
             xlab = "风速 (mph)",
             ylab = "温度 (华氏度)",
             pch = as.character(aq_data$Month)) 
    })
    
    output$coords <- renderPrint({
        nearPoints(aq_data, input$single_click,
                   xvar = "Wind", yvar = "Temp", threshold = 20)
    }) 
}

# 启动交互式应用
shinyApp(ui = ui, server = server)

调整后应用会绘制风速与温度的散点图,不同形状的点对应不同月份,点击散点即可在下方文本框展示对应行的空气质量完整记录。你也可以根据自己的分析需求,更换x、y轴映射的字段为Ozone(臭氧浓度)、Solar.R(太阳辐射)等其他airquality内置字段。

内容的提问来源于stack exchange,提问作者Zach Paiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:57:04