R 将嵌套深度不等的JSON文本字段转换为数据帧

R 将嵌套深度不等的JSON文本字段转换为数据帧,r,list,dataframe,jsonlite,R,List,Dataframe,Jsonlite,我正在尝试将中的数据提取中的列转换为data.frame 假设在表extract中,我有一列extract$stage,类型为:character,其前11行看起来类似于以下内容 extract <- read.table (text = 'stage {"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}} {"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}} {"Stages":{"SBS":{"Type":"N

我正在尝试将中的数据提取中的列转换为data.frame

假设在表
extract
中,我有一列
extract$stage
,类型为:character,其前11行看起来类似于以下内容

extract <- read.table (text = 
'stage
{"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}}
{"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}}
{"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}}
{"Stages":{"SBS":[{"Type":"Land","Max":"60%"},{"Type":"Dcon","Max":"70%"},{"Type":"Finish","Max":"80%"}]}}
{"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}}
{"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}}
{"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}}
{"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}}
{"Stages":{"SBS":[{"Type":"Land","Max":"80%"},{"Type":"Dcon","Max":"80%"},{"Type":"Finish","Max":"80%"}]}}
{"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}}
{"Stages":{"SBS":{"Type":"N/A","Max":"N/A"}}}',
header = T, stringsAsFactors = F)
我尝试了jsonlite::fromJSON和do.call的组合

我可以从一开始通过

lapply(extract$stage, jsonlite::fromJSON)
但我无法将其分散到多个列中

有人能帮忙吗


谢谢

自行解决,而不是靠运气:

lapply(extract$stage, jsonlite::fromJSON) -> ex1
do.call(bind_rows, lapply(ex1, unlist)) -> ex2
ex2
。。。尽管很高兴看到有人有一个更整洁的解决方案

lapply(extract$stage, jsonlite::fromJSON) -> ex1
do.call(bind_rows, lapply(ex1, unlist)) -> ex2
ex2