如何将TXT文件中JSON字符串解析得到的R DataFrame展开为长格式
解决EIA批量JSON数据的长格式展开问题
错误代码分析
你之前尝试的unnest所有列后转置的方式不符合EIA数据的嵌套结构,会导致字段错乱,无法得到正确的长格式数据。
正确处理步骤
1. 加载依赖包
library(jsonlite) library(tidyverse)
2. 读取并解析JSON数据
替换成你的本地文件路径(注意关闭文件连接,避免资源占用):
filepath <- "你的EIA数据文件路径.txt" content <- file(filepath, open = "rt") seds <- stream_in(content) close(content)
3. 逐步展开嵌套列得到长格式
EIA的SEDS数据中,series_id、name、units是一一对应的序列标识,data是该序列下的年份-数值集合,按以下步骤展开:
seds_long <- seds %>% # 展开序列标识列(每个序列一行) unnest(cols = c(series_id, name, units, description)) %>% # 展开年份-数值数据(每个年份一行) unnest(cols = data) %>% # 重命名列以提升可读性 rename(year = period, energy_value = value)
4. 验证结果
用glimpse查看最终长格式结构:
glimpse(seds_long)
最终数据每行对应一个序列在某一年的记录,包含序列ID、变量名、单位、年份、数值等核心字段,符合长格式要求。
内容的提问来源于stack exchange,提问作者Davidmac
相关产品推荐
相关产品推荐

