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

使用Shiny实现用户输入过滤数据绘图及功能修复求助

Shiny邮政编码房价预测应用报错修复方案

问题分析

你的代码存在三个核心问题导致报错:

  1. 数据过滤函数错误,且未正确调用响应式数据
  2. 绘图代码混用了base plot与ggplot2语法
  3. Help按钮的文件路径调用语法错误

修复步骤

  • 响应式数据修正:
    • 将grep1改为R原生的grep函数(或直接用等值匹配更直观)
    • 使用响应式数据时必须添加括号(),即filteredData()来获取最新数据
  • 绘图代码修正:
    • 加载ggplot2包,统一使用ggplot2语法绘图
    • 正确传入过滤后的响应式数据到绘图函数
  • Help按钮修正:
    • 修正file.show的参数格式,移除错误的括号嵌套,使用正确的本地文件路径

完整修复代码

library(shiny)
library(shinydashboard)
library(ggplot2) # 必须加载ggplot2包

# 确保Home_Clean1数据集已提前加载,示例:
# Home_Clean1 <- read.csv("your_house_price_data.csv")

ui <- dashboardPage(
  dashboardHeader(title = "Market Prediction"),
  dashboardSidebar(
    actionButton("pdf", "Help"),
    downloadButton("downloadData", "Market Analysis")
  ),
  dashboardBody(
    box(plotOutput("market_analysis"), width = 8),
    box(
      selectInput("Zip_Code", "Select Zip Code",
                  choices = unique(Home_Clean1$RegionName)) # 明确指定choices参数
    )
  )
)

server <- function(input, output, session){
  # 修正响应式数据过滤逻辑
  filteredData <- reactive({
    # 等值匹配更精准,避免grep模糊匹配的意外结果
    Home_Clean1[Home_Clean1$RegionName == input$Zip_Code, ]
  })
  
  output$market_analysis <- renderPlot({
    # 调用响应式数据必须加(),使用标准ggplot2语法
    ggplot(filteredData(), aes(x = Monthly_parsed, y = Price/1000)) +
      geom_line(color = "blue") +
      xlab("Year") +
      ylab("Price in Thousands") +
      ggtitle("House Prices Over Time") +
      scale_x_date(date_labels = "%Y", breaks = "10 year") +
      theme(axis.text.x = element_text(angle = 90, hjust = 1))
  })
  
  # 修正Help按钮的文件路径调用
  observeEvent(input$pdf, {
    file.show("C:/Users/gorge/OneDrive/Documents/DSC Capstone/Help.pdf")
    # 修正了路径中重复的OneDrive错误
  })
}

shinyApp(ui, server)

额外注意事项

  • 确认Home_Clean1数据集包含RegionName(邮政编码列)、Monthly_parsed(日期格式的时间列)、Price(房价列)
  • 如果需要模糊匹配邮政编码,可将过滤逻辑改为grep(input$Zip_Code, Home_Clean1$RegionName, fixed = TRUE),fixed=TRUE可避免正则表达式干扰
  • downloadData按钮功能需补充,可参考Shiny官方文档添加数据下载逻辑

内容的提问来源于stack exchange,提问作者Lissette Molina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 14:45:31