求助:在R Studio中解析嵌套JSON并拆分行列
解决嵌套JSON解析与行拆分问题
首先确保你已经安装并加载了tidyverse和jsonlite包:
install.packages(c("tidyverse", "jsonlite")) library(tidyverse) library(jsonlite)
你的现有代码用map_dfc会把结果按列拼接,无法实现行拆分。正确的做法是先解析每个单元格的JSON为列表,再拆分列表为多行,最后展开成目标列:
# 处理核心逻辑:解析JSON、拆分行、展开列 processed_data <- dwell_sample %>% # 保留原有16列,同时将widgets列解析为嵌套列表 mutate(widgets_parsed = map(widgets, ~fromJSON(.x, flatten = TRUE))) %>% # 将列表中的每个对象拆分为单独行(自动实现Type A/B分两行) unnest(widgets_parsed) %>% # 移除原始JSON列,并重命名匹配目标列名 select(-widgets) %>% rename( Type = type, # 注意:这里要和你JSON里的实际键名对应,比如原键是type还是Type Bid = bid, Cid = cid, x1 = x1, x2 = x2, x3 = x3, x4 = x4, x5 = x5 )
关键细节说明:
map(widgets, ~fromJSON(.x, flatten = TRUE)):逐个解析每个单元格的JSON,返回包含Type A、B两个对象的列表unnest(widgets_parsed):把列表中的每个对象拆成独立行,直接满足按Type拆分两行的需求- 如果原始JSON的键名和你要的列名不一致,需要在
rename里对应调整,比如原JSON键是"TYPE"就改成Type = TYPE
内容的提问来源于stack exchange,提问作者user3218428
相关产品推荐
相关产品推荐

