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

shinyapps.io发布Shiny应用时路径读取错误问题如何解决

解决方案

核心问题说明

shinyapps.io为云端服务器,无法访问你本地设备的C盘路径,你写死的本地绝对路径C:/Users/MK0008/OneDrive - GROUP/Reports/Aug 2021/report_rating.csv在云端环境不存在,因此触发文件找不到的报错。

具体操作步骤

  • 第一步:调整项目文件结构
    将你的Shiny应用代码(app.R/ ui.R+server.R)和用到的report_rating.csv放在同一个文件夹下,该文件夹作为Shiny应用的根目录。
  • 第二步:修改文件读取代码
    删除原代码中的绝对路径,直接使用相对路径读取数据:
    df <- read.csv("report_rating.csv")
    
    *如果数据集体积较大,推荐提前在本地完成数据预处理,将清洗后的结果保存为RDS格式上传,既减少云端计算压力,也能提升应用加载速度:
    本地提前运行:
    # 本地预处理代码
    df <- read.csv("C:/Users/MK0008/OneDrive - GROUP/Reports/Aug 2021/report_rating.csv")
    df1 <- df
    df1$Competency.Self.Rating <- revalue(df$Competency.Self.Rating, c("Unrated"=100))
    df1[df1 == ""] <- NA     
    df1$Competency.Self.Rating[is.na(df1$Competency.Self.Rating)] <- 100
    df1$Competency.Official.Rating <- revalue(df$Competency.Official.Rating, c("Unrated"=100))
    report <- with(df1, table(Competency.Official.Rating, Competency.Name))
    report <- as.data.frame(report)
    report_stats <- report %>% 
      arrange(Competency.Name, desc(Competency.Official.Rating)) %>% 
      group_by(Competency.Name) %>% 
      mutate(cumsum = cumsum(Freq))
    # 保存预处理结果
    saveRDS(report, "report.RDS")
    saveRDS(report_stats, "report_stats.RDS")
    
    应用代码修改为直接读取预处理后的RDS文件,删掉原应用代码里的本地数据读取、预处理逻辑:
    report <- readRDS("report.RDS")
    report_stats <- readRDS("report_stats.RDS")
    
  • 第三步:发布时勾选对应数据文件
    在RStudio的shinyapps.io发布弹窗中,确认除了应用代码外,report_rating.csv(或你保存的RDS文件)已被勾选纳入上传列表,避免漏传文件。
  • 第四步:删除代码中所有setwd()相关逻辑,所有文件路径均使用相对于应用根目录的相对路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:18:03