R 将嵌套深度不等的JSON文本字段转换为数据帧
我正在尝试将中的数据提取中的列转换为data.frame 假设在表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
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