在R中将字典字符串分解为多个变量

时间:2018-09-16 17:50:37

标签: r

我得到了一个数据集,其中特定变量中的值看起来像...

{"varname": "value", "varname2": "value2", "varname3": "value3"} 

,我想要一种快速有效的方法将其分解为3个单独的变量,其中var名称是列名称,值是其对应的向量。它必须在R中,否则pythons词典功能将轻松解决此问题。任何想法将不胜感激!

2 个答案:

答案 0 :(得分:0)

您有一个简单的json:

# install.packages("rjson")  # If you don't have this package, run this line   
library("rjson")
str <- '{"varname": "value", "varname2": "value2", "varname3": "value3"}'
json_data <- fromJSON(str)

输出在列表中提供变量:

$`varname`
[1] "value"

$varname2
[1] "value2"

$varname3
[1] "value3"

现在,如果将其转换为数据框,它将为您提供所需的确切结果:

as.data.frame(json_data  )

最终输出为:

varname varname2 varname3
  value   value2   value3

答案 1 :(得分:0)

您可以使用jsonlite包中的fromJSON()函数将Python字典解析为R list,然后使用as.data.frame()将其转换为数据帧。之后,您可以使用r_df$...

访问每个变量
py_dict <- '{"varname": "value", "varname2": "value2", "varname3": "value3"}'
r_list <- jsonlite::fromJSON(txt = py_dict)
r_df <- as.data.frame(r_list)
r_df

#>   varname varname2 varname3
#> 1   value   value2   value3

reprex package(v0.2.1)于2018-09-16创建