R 语言 JSON文件

  • R 语言 JSON 文件

    JSON文件以易于阅读的格式将数据存储为文本。Json代表JavaScript对象表示法。R可以使用rjson包读取JSON文件。
  • 安装rjson包

    在R控制台中,您可以发出以下命令来安装rjson软件包。
    
    install.packages("rjson")
    
  • 输入数据

    通过将以下数据复制到文本编辑器(如记事本)中来创建JSON文件。保存扩展名为.json的文件,然后选择文件类型为所有文件(*.*)。
    
    { 
       "ID":["1","2","3","4","5","6","7","8" ],
       "Name":["Rick","Dan","Michelle","Ryan","Gary","Nina","Simon","Guru" ],
       "Salary":["623.3","515.2","611","729","843.25","578","632.8","722.5" ],
       
       "StartDate":[ "1/1/2012","9/23/2013","11/15/2014","5/11/2014","3/27/2015","5/21/2013",
          "7/30/2013","6/17/2014"],
       "Dept":[ "IT","Operations","IT","HR","Finance","IT","Operations","Finance"]
    }
    
  • 读取JSON文件

    R使用JSON()中的函数读取JSON文件。它作为列表存储在R中。
    
    # 加载读取JSON文件所需的包。
    library("rjson")
    
    # 给函数输入文件名。
    result <- fromJSON(file = "input.json")
    
    # 打印结果。
    print(result)
    
    当我们执行以上代码时,它产生以下结果-
    
    $ID
    [1] "1"   "2"   "3"   "4"   "5"   "6"   "7"   "8"
    
    $Name
    [1] "Rick"     "Dan"      "Michelle" "Ryan"     "Gary"     "Nina"     "Simon"    "Guru"
    
    $Salary
    [1] "623.3"  "515.2"  "611"    "729"    "843.25" "578"    "632.8"  "722.5"
    
    $StartDate
    [1] "1/1/2012"   "9/23/2013"  "11/15/2014" "5/11/2014"  "3/27/2015"  "5/21/2013"
       "7/30/2013"  "6/17/2014"
    
    $Dept
    [1] "IT"         "Operations" "IT"         "HR"         "Finance"    "IT"
       "Operations" "Finance"
    
  • 将JSON转换为数据帧

    我们可以使用as.data.frame()函数将上面提取的数据转换为R数据帧以进行进一步分析。
    
    # 加载读取JSON文件所需的包。
    library("rjson")
    
    # 给函数输入文件名。
    result <- fromJSON(file = "input.json")
    
    # 将JSON文件转换为数据框。
    json_data_frame <- as.data.frame(result)
    
    print(json_data_frame)
    
    当我们执行以上代码时,它产生以下结果-
    
          id,   name,    salary,   start_date,     dept
    1      1    Rick     623.30    2012-01-01      IT
    2      2    Dan      515.20    2013-09-23      Operations
    3      3    Michelle 611.00    2014-11-15      IT
    4      4    Ryan     729.00    2014-05-11      HR
    5     NA    Gary     843.25    2015-03-27      Finance
    6      6    Nina     578.00    2013-05-21      IT
    7      7    Simon    632.80    2013-07-30      Operations
    8      8    Guru     722.50    2014-06-17      Finance