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

使用microdatasus包下载SIH-RD数据遇错误,求技术协助

解决microdatasus包下载SIH-RD数据的两类问题

1. FTP文件无法访问的警告

In utils::download.file(file, temp, mode = "wb", method = "libcurl") :
cannot open URL 'ftp://ftp.datasus.gov.br/dissemin/publicos/SIHSUS/199201_200712/Dados/RDAC9402.dbc': FTP status was '550 Requested action not taken; file unavailable'

  • 问题原因:目标文件RDAC9402.dbc在DATASUS的FTP服务器上不存在,可能是文件路径调整、文件名拼写错误,或是该时段的SIH-RD数据未被归档保存。
  • 解决步骤:
    • 手动核实FTP目录:查看对应FTP路径下的文件列表,确认是否存在RDAC9402.dbc;
    • 调整下载时段:如果指定的是1994年2月的数据,尝试更换其他有公开数据的时段测试;
    • 更新包版本:升级microdatasus到最新版本,包内的文件路径映射可能已随DATASUS服务器的变更更新。

2. dplyr::bind_rows()类型不兼容错误

Error in dplyr::bind_rows():
! Can't combine ..1$NUM_PROC and ..2$NUM_PROC .

  • 问题原因:下载的多份SIH-RD数据中,NUM_PROC字段的类型不一致——部分文件中是字符型,部分是整数型,bind_rows无法自动合并不同类型的同名字段。
  • 解决步骤:
    • 统一字段类型后再合并:在合并前,将所有数据框的NUM_PROC字段转换为同一类型(推荐转为字符型,避免流程编号包含非数字字符时丢失信息),示例代码:
      library(dplyr)
      # 假设raw_data_list是下载得到的多个数据框组成的列表
      processed_list <- lapply(raw_data_list, function(df) {
        df %>% mutate(NUM_PROC = as.character(NUM_PROC))
      })
      combined_data <- bind_rows(processed_list)
      
    • 单独处理异常文件:如果只有个别文件的NUM_PROC类型异常,可先定位该文件,单独调整类型后再加入合并队列;
    • 检查数据时段差异:早期SIH数据的字段定义可能存在变动,不同年份/月份的字段类型可能不同,必要时按时段分批处理后再合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:32:27