作者 钱亦欣
json是当下非常流行的数据交换格式,有着简单易用,易读(人和机器都容易)等特点。目前挺流行的非关系型数据库MongoDB就可以简单理解为一个json的容器,同时mysql(5.7以上版本),postgresql等关系型数据库也开始支持这一数据结构。因此,掌握关于json的一些知识很有必要,你可以访问它的官网来了解它的结构和在各种编程语言中的相应的库。
当然,身为一个统计专业的学生,我们接触到的数据很多时候还是结构化的DataFrame格式,如果你想把这一格式的存储转换为json格式,我在这里给大家推荐一个很好用的包--jsonlite。
jsonlite是专门用来转换,读取和保存json文件的R包,按照作者的描述,它提供了json和R中常用数据类型的双向转换功能,高效、简洁而且稳定。根据我的使用体验,也确实如此。闲言少叙,让我们进入正题。
1. 读取json文件
json文件的读取可以用read_json()函数实现,这个函数的第二个参数 simplifyVector 如果设置为TRUE,则json结构会被简化为向量,FALSE则会变为列表
2. json结构和R中原生数据结构的相互转换
(1)jsonlite包中的fromJSON函数就是把json结构的数据转换为R中常见数据类型的工具。与之相反,toJSON函数则是把R中原生的数据结构转变为json。具体的参数设定和二者的结构对应关系如下:
我们来展开港一港:
Atomic Vectors
如果你的JSON结构本身就是一个简单的数组,那么用simplifyVector参数就能把它直接转换为向量
# JSON 简单数组
json
# 转换为向量
fromJSON(json)
[1] "Mario" "Peach" NA "Bowser"
如果把这个参数设置为false,那么就会转换为list。
fromJSON(json, simplifyVector