在R中拆分一个字符串到数据框(Col名称和值)。

我想把一些数据(字符串)拆分开来,并把它们放在一个数据框中。在我的字符串中,第一部分是col名称,第二部分是它的值。我的数据是这样的。

 "\"id\":247,\"hseStr\":[1,1,1,1],\"pertun\":96,\"sqrMtr\":[2500,2500,2500,2500,2500,2500],\"hDWInt\":[],\"hDWIIncptn\":[],\"hDWIID\"":[],\"cntRateRgn\":\"2102B02\",\"prclID\":\"4748403C\", \"hAction\":null ,\"mAction\":null,\"addrGrps\":null,\"hseEQDdctbl\":[51.8594958810969,42.

理想情况下,我想变成这样。

id      hseStr    pertun  sqrMtr ...

247   [1,1,1,1]     96     [2500,2500,2500,2500,2500,2500]...

之前我用”, “把数据拆开然后放到表格里, 但是这里因为有更多的”, “被用在值里 比如[1,1,1,1], 我不能用这个方法!

我必须以某种方式区分文本中使用的”,”,并用不同的字符替换它们。

更新完整的字符串。

"{\"id\":21247,\"hs111\":[1,1,1,1],\"p2n\":96,\"sq211\":[20,500,20,20,20,20],\"hoi\":[],\"hsa\":[],\"h961\":[],\"h885\":[],\"t252\":[],\"cn01\":[],\"cD56\":[],\"cI65\":[],\"mD24\":[],\"mD23\":[],\"m63\":[],\"m985\":[],\"h23\":[],\"c112\":[],\"m41\":[],\"r54\":1,\"m63\":\"S6\",\"hs74\":\"2\",\"c55\":\"21\",\"p12\":\"4C\",\"h11\":null,\"m14\":null,\"a12\":null,\"h88\":[1.8,2.3,6.4,28.2,17.9,11.0,7.0,4.1,2.5,0],\"h87\":[3.9,6.1,6.9,4.2,3.7,2.487,1.6],\"cn98\":[1.25,3.1,1.4,12.1,5.3,2.2,1.1,0.5,0.2,0],\"h76\":null,\"c12\":null,\"m54\":null}"

解决方案:

我们可以从为处理JSON而构建的包中获得帮助。

stack(jsonlite::fromJSON(string))


#   values   ind
#1   21247    id
#2       1 hs111
#3       1 hs111
#4       1 hs111
#5       1 hs111
#6      96   p2n
#7      20 sq211
#8     500 sq211
#9      20 sq211
#10     20 sq211
#11     20 sq211
#12     20 sq211
#13      1   r54
#14     S6   m63
#15      2  hs74
#16     21   c55
#17     4C   p12
#18    1.8   h88
#19    2.3   h88
#20    6.4   h88
#...
#...

这将删除 NULL 值,你可以将其替换为 NA 如果你想保留它。同时这也为每个元素提供了单独的行。

如果你想把每个键保留为单行,把值保留为列表,我们可以使用 enframetibble.

tibble::enframe(jsonlite::fromJSON(string))


# A tibble: 33 x 2
#   name  value     
#   <chr> <list>    
# 1 id    <int [1]> 
# 2 hs111 <int [4]> 
# 3 p2n   <int [1]> 
# 4 sq211 <int [6]> 
# 5 hoi   <list [0]>
# 6 hsa   <list [0]>
# 7 h961  <list [0]>
# 8 h885  <list [0]>
# 9 t252  <list [0]>
#10 cn01  <list [0]>
# … with 23 more rows

给TA打赏
共{{data.count}}人
人已打赏
未分类

将SQL转储恢复到远程Postgres机器上。

2022-9-8 17:03:22

未分类

警告:试图呈现<UIAlertController: > > 其视图不在窗口层次结构中。试图呈现<UIAlertController: > > 其视图不在窗口层次结构中。

2022-9-8 17:14:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索