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

如何解析已下载的SEC EDGAR 13F报表TXT文件得到可用数据

R语言解析SEC EDGAR 13F报表本地TXT文件方案
  • 依赖包准备
    需要用到3个R包,可执行以下代码安装加载:
    # 安装未安装的包
    install.packages(c("xml2", "stringr", "dplyr"))
    # 加载包
    library(xml2)
    library(stringr)
    library(dplyr)
    
  • 核心逻辑
    EDGAR公开的原始TXT文件为多格式混合内容,13F报表的结构化持仓数据全部封装在<informationTable>和</informationTable>标签对内部的XML片段中,只需提取该片段即可解析得到可用的表格数据。
  • 完整解析代码
    替换代码中的本地文件路径为你实际存储的TXT文件路径即可运行:
    # 1. 读取本地TXT文件全部内容
    local_file_path <- "你的本地13F TXT文件路径" # 例:"~/downloads/0001567619-21-010580.txt"
    raw_content <- readLines(local_file_path, warn = FALSE, encoding = "UTF-8") %>%
      paste(collapse = "\n")
    
    # 2. 提取13F持仓数据对应的XML片段
    xml_segment <- str_extract(raw_content, "<informationTable.*?</informationTable>")
    
    # 3. 解析XML并转换为数据框
    xml_doc <- read_xml(xml_segment)
    holdings_nodes <- xml_find_all(xml_doc, ".//infoTable")
    
    holdings_df <- lapply(holdings_nodes, function(node) {
      child_nodes <- xml_children(node)
      data.frame(
        t(setNames(xml_text(child_nodes), xml_name(child_nodes))),
        check.names = FALSE,
        stringsAsFactors = FALSE
      )
    }) %>% bind_rows()
    
    # 输出解析结果预览
    head(holdings_df)
    
  • 输出说明
    最终得到的holdings_df即为结构化的13F持仓表,包含股票名称、CUSIP编码、持仓市值、持仓数量、投资类型等全部公示字段,可直接用于后续分析。
  • 异常处理
    如果出现XML提取失败的情况,可打开原始TXT文件确认持仓数据的包裹标签,调整正则匹配的标签名即可适配不同时期的13F报表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 08:03:04