首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串拆分为R中的dataframe (Col名称和值)

将字符串拆分为R中的dataframe (Col名称和值)
EN

Stack Overflow用户
提问于 2020-04-24 04:53:15
回答 1查看 72关注 0票数 0

我正在尝试拆分一些数据(字符串),并将它们放入数据帧中。在我的字符串中,第一个是col,第二个是它的值。我的数据如下:

代码语言:javascript
复制
 "\"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.

理想情况下,我想成为这样的人:

代码语言:javascript
复制
id      hseStr    pertun  sqrMtr ...

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

以前,我将数据除以",“然后将其放在表中,但是在这里,因为有更多的",”在诸如1,1,1,1等值中使用的数据,所以我不能使用这个方法!

我在某种程度上区分了文本中使用的",“,并将它们替换为不同的字符。

更新完整字符串:

代码语言:javascript
复制
"{\"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}"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-24 06:57:06

我们可以从构建来处理JSON的包中获得帮助:

代码语言:javascript
复制
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替换它。这也为每个元素提供了单独的行。

如果希望将每个键保留为单行,将值保留为列表,则可以从tibble中使用tibble

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61401396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档