在 R 编程中使用 JSON 文件
JSON代表JavaScript 对象表示法。这些文件包含人类可读格式的数据,即文本。与任何其他文件一样,您可以读取和写入 JSON 文件。为了在 R 中使用 JSON 文件,需要安装“rjson”包。使用 rjson 包下的 JSON 文件完成的最常见任务如下:
- 在 R 控制台中安装和加载 rjson 包
- 创建 JSON 文件
- 从 JSON 文件中读取数据
- 写入 JSON 文件
- 将 JSON 数据转换为 Dataframe
- 使用 URL
安装并加载 rjson 包
可以通过以下方式使用install.packages()
命令从 R 控制台安装 rjson:
install.packages("rjson")
安装 rjson 包后,必须使用library()
函数加载包,如下所示:
library("rjson")
创建 JSON 文件
要创建 JSON 文件,可以执行以下步骤:
- 将下面给出的数据复制到记事本文件或任何文本编辑器文件中。也可以根据给定的格式创建自己的数据。
{ "ID":["1","2","3","4","5"], "Name":["Mithuna","Tanushree","Parnasha","Arjun","Pankaj"], "Salary":["722.5","815.2","1611","2829","843.25"], "StartDate":["6/17/2014","1/1/2012","11/15/2014","9/23/2013","5/21/2013"], "Dept":["IT","IT","HR","Operations","Finance"] }
- 选择“所有类型”作为文件类型,并以.json扩展名保存文件。(示例:example.json)
- 必须确保信息或数据包含在一对或花括号 {} 中。
读取 JSON 文件
在 R 中,读取 JSON 文件是一项非常简单的任务。使用fromJSON()
函数可以非常高效地提取和读取 JSON 文件的数据。 fromJSON()
函数获取 JSON 文件,并默认以列表格式返回从 JSON 文件中提取的数据。
例子:
假设上述数据存储在 E 盘名为example.json的文件中。要读取文件,我们必须编写以下代码。
# Read a JSON file
# Load the package required to read JSON files.
library("rjson")
# Give the input file name to the function.
result <- fromJSON(file = "E:\\example.json")
# Print the result.
print(result)
输出:
$ID
[1] "1" "2" "3" "4" "5"
$Name
[1] "Mithuna" "Tanushree" "Parnasha" "Arjun" "Pankaj"
$Salary
[1] "722.5" "815.2" "1611" "2829" "843.25"
$StartDate
[1] "6/17/2014" "1/1/2012" "11/15/2014" "9/23/2013" "5/21/2013"
$Dept
[1] "IT" "IT" "HR" "Operations" "Finance"
写入 JSON 文件
在将数据写入 JSON 文件之前,需要使用toJSON()
函数创建一个 JSON 对象。要写入 JSON 文件,请使用write()
函数。
示例:
# Writing into JSON file.
# Load the package required to read JSON files.
library("rjson")
# creating the list
list1 <- vector(mode="list", length=2)
list1[[1]] <- c("sunflower", "guava", "hibiscus")
list1[[2]] <- c("flower", "fruit", "flower")
# creating the data for JSON file
jsonData <- toJSON(list1)
# writing into JSON file
write(jsonData, "result.json")
# Give the created file name to the function
result <- fromJSON(file = "result.json")
# Print the result
print(result)
输出:
[[1]]
[1] "sunflower" "guava" "hibiscus"
[[2]]
[1] "flower" "fruit" "flower"
将 JSON 数据转换为 Dataframe
在 R 中,要将 JSON 文件中提取的数据转换为数据框,可以使用as.data.frame()
函数。
例子:
# Convert the file into dataframe
# Load the package required to read JSON files.
library("rjson")
# Give the input file name to the function.
result <- fromJSON(file = "E://example.json")
# Convert JSON file to a data frame.
json_data_frame <- as.data.frame(result)
print(json_data_frame)
输出:
ID Name Salary StartDate Dept
1 1 Mithuna 722.5 6/17/2014 IT
2 2 Tanushree 815.2 1/1/2012 IT
3 3 Parnasha 1611 11/15/2014 HR
4 4 Arjun 2829 9/23/2013 Operations
5 5 Pankaj 843.25 5/21/2013 Finance
使用 URL
可以从任何网站获取数据集并提取数据并使用它们。这可以在两个包中的任何一个下完成,即RJSONIO和jsonlite 。
例子:
# working with URLs
# import required library
library(RJSONIO)
# extracting data from the website
Raw <- fromJSON(
"https://data.ny.gov/api/views/9a8c-vfzj/rows.json?accessType=DOWNLOAD")
# extract the data node
food_market <- Raw[['data']]
# assembling the data into data frames
Names <- sapply(food_market, function(x) x[[14]])
head(Names)
输出:
[1] "LUCKY MART " "CUMBERLAND FARMS 1587 "
[3] "K&M SPORTS " "MASON&OLD RIDGE FARM "
[5] "HAMPTON CHUTNEY CO " "CM - HUTCHINSON "