R - JSON 檔案:初學者指南

你好啊,未來的 R 巫師!今天,我們將踏上一段令人興奮的旅程,進入 JSON 檔案的世界,以及如何在 R 中處理它們。別擔心如果你從未編程過——我將成為你這次冒險中的友好導遊,就像我這些年來為無數學生所做的一樣。那麼,讓我們潛入水中吧!

R - JSON Files

什麼是 JSON?

在我們開始之前,讓我們快速了解一下 JSON 是什麼。JSON 的全稱是 JavaScript Object Notation。它是一種輕量級數據格式,對人類來說易於閱讀和編寫,對機器來說則易於解析和生成。把它看作是一種以結構化和有組織的方式存儲信息的方法——就像一个非常整潔的數字文件櫃!

安裝 rjson 套件

要在 R 中處理 JSON 檔案,我們需要一個特殊工具。在 R 的世界中,我們稱這些工具為“套件”。我們將要使用的套件叫做 "rjson"。讓我們來安裝它!

install.packages("rjson")
library(rjson)

當你運行這些行時,R 會連接到互聯網,下載 rjson 套件,並為我們準備使用。這就像去數字工具箱並選擇我們工作的完美工具一樣!

輸入數據

現在,我們有了工具,讓我們來看看一些數據。假設我們有一個叫做 "students.json" 的 JSON 檔案,裡面有關於一些學生的信息。它可能看起來像這樣:

{
"students": [
{
"name": "Alice",
"age": 20,
"major": "Computer Science"
},
{
"name": "Bob",
"age": 22,
"major": "Mathematics"
},
{
"name": "Charlie",
"age": 21,
"major": "Physics"
}
]
}

這個 JSON 檔案包含了一個學生數組,其中每個學生都有名字、年齡和專業。這就像是我們課程的一個迷你數據庫!

讀取 JSON 檔案

現在,讓我們將這個 JSON 檔案讀入 R。我們將使用 rjson 套件中的 fromJSON() 函數:

json_data <- fromJSON(file = "students.json")

這行代碼告訴 R 讀取 "students.json" 檔案並將其內容存儲在名為 json_data 的變量中。這就像我們將 JSON 檔案的内容倒入 R 的容器中。

讓我們看看我們得到了什麼:

print(json_data)

你應該會看到類似這樣的東西:

$students
$students[[1]]
$students[[1]]$name
[1] "Alice"

$students[[1]]$age
[1] 20

$students[[1]]$major
[1] "Computer Science"

$students[[2]]
$students[[2]]$name
[1] "Bob"

$students[[2]]$age
[1] 22

$students[[2]]$major
[1] "Mathematics"

$students[[3]]
$students[[3]]$name
[1] "Charlie"

$students[[3]]$age
[1] 21

$students[[3]]$major
[1] "Physics"

恭喜你!你剛剛讀取了你的第一個 JSON 檔案到 R!

將 JSON 轉換為數據框

雖然 JSON 數據現在已經在 R 中,但它不是最方便的格式用於分析。在 R 中,我們經常喜歡使用一種叫做“數據框”的東西。這就像一個表格或電子表格。讓我們將我們的 JSON 數據轉換為數據框:

students_df <- do.call(rbind, lapply(json_data$students, as.data.frame))

哇!這有點複雜,不是嗎?讓我們分解一下:

  1. json_data$students 存取我們 JSON 數據中的 "students" 部分。
  2. lapply() 對列表中的每個學生應用 as.data.frame() 函數。
  3. do.call(rbind, ...) 將所有這些個別的數據框綁定到一個大的數據框中。

現在,讓我們看看我們新的數據框:

print(students_df)

你應該會看到類似這樣的東西:

name age           major
1   Alice  20 Computer Science
2     Bob  22     Mathematics
3 Charlie  21         Physics

好多了!現在我們有一個整潔、乾淨的學生數據表。

處理數據框

現在我們將數據存放在數據框中,我們可以輕鬆地在上面進行各種操作。以下是一些例子:

  1. 計算學生的平均年齡:
mean_age <- mean(students_df$age)
print(paste("學生的平均年齡是:", mean_age))
  1. 找到所有主修特定科目學生:
cs_students <- students_df[students_df$major == "Computer Science", ]
print("主修計算機科學的學生:")
print(cs_students)
  1. 添加一個新列:
students_df$graduation_year <- 2023 + (22 - students_df$age)
print(students_df)

結論

就是这样!我們從安裝套件,到讀取 JSON 檔案,再到將其轉換為數據框並進行一些基本操作,一路旅行。你已經邁出了在 R 中數據操作的第一步!

記住,像任何技能一樣,在 R 中處理 JSON 讓人隨著練習而變得容易。不要害怕嘗試和嘗試新事物。誰知道呢?下一個重大的數據發現可能就在你的指尖!

這裡是一個我們使用的主要函數的總結表:

函數 套件 描述
install.packages() base R 安裝一個套件
library() base R 加载一個套件
fromJSON() rjson 讀取一個 JSON 檔案
do.call() base R 构建并执行一个函数调用
rbind() base R 按行组合 R 对象
lapply() base R 在列表或向量上应用一个函数
as.data.frame() base R 强制转换为数据框
mean() base R 计算算术平均值

快乐编码,愿你的数据永远整洁!

Credits: Image by storyset