【发布时间】:2019-10-03 13:54:28
【问题描述】:
我正在尝试将数据提取中的列转换为 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)
最后我想要的是一个具有相同行数但有额外列的数据框,这样最终结构会动态捕获任何内部嵌套字段,并且我会得到 11 行此布局:
Record Type.NA Max.NA Type.Land Max.Land Type.Dcon Max.Dcon Type.Finish Max.Finish
1 NA NA NA NA NA NA NA NA
...
4 NA NA Land 60% Dcon 70% Finish 80%
我尝试过 jsonlite::fromJSON 和 do.call 的组合。
我可以从第一个列表开始,通过
lapply(extract$stage, jsonlite::fromJSON)
但我无法将其分散到多个列中。
谁能帮忙?
谢谢!
【问题讨论】: