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

如何在R中结构化读取ASCII格式的.RAW文件?

解决R中结构化NBER RAW固定宽度数据的简便方法

核心逻辑

你处理的这类RAW文件属于固定宽度格式(Fixed-Width Format),仅指定总宽度无法实现结构化,必须匹配文档里的字段位置、宽度、名称规则来拆分列。

具体操作步骤

1. 整理字段规则

从你找到的文档中,提取每个字段的关键信息并整理成结构化格式,示例如下:

# 请替换为你文档里的真实字段规则
field_rules <- data.frame(
  字段名 = c("EIN", "机构名称", "纳税周期"),
  宽度 = c(9, 40, 4)
)

2. 用read.fwf直接结构化数据

把整理好的字段宽度和名称传入read.fwf,就能直接得到结构化数据:

structured_data <- read.fwf(
  file = "D://Data//1987//f990.87.raw",
  widths = field_rules$宽度,
  col.names = field_rules$字段名,
  stringsAsFactors = FALSE  # 避免自动转换为因子类型,按需调整
)

3. 大文件高效替代方案:readr包的read_fwf

如果数据量较大,readr包的read_fwf速度更快,还支持直接用文档里的起始-结束位置定义字段:

library(readr)
# 示例:按文档里的"1-9 EIN"这种格式定义字段位置
field_positions <- fwf_cols(
  EIN = c(1,9),
  机构名称 = c(10,49),
  纳税周期 = c(50,53)
)
structured_data <- read_fwf("D://Data//1987//f990.87.raw", field_positions)

关于SAScii的补充说明

SAScii仅适用于解析SAS格式的.sas定义文件,如果你的文档里有SAS输入语句,可将其保存为.sas文件后再用该工具:

library(SAScii)
structured_data <- read.SAScii(
  sas_ri = "你的SAS定义文件路径.sas",
  txt = "D://Data//1987//f990.87.raw"
)

内容的提问来源于stack exchange,提问作者Weierstraß Ramirez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 15:03:17