Hướng dẫn cơ bản về tệp JSON trong R

Xin chào các pháp sư tương lai của R! Hôm nay, chúng ta sẽ bắt đầu một hành trình đầy thú vị vào thế giới của các tệp JSON và cách làm việc với chúng trong R. Đừng lo lắng nếu bạn chưa bao giờ lập trình trước đây - tôi sẽ là hướng dẫn viên thân thiện của bạn trong cuộc phiêu lưu này, như tôi đã làm cho hàng trăm sinh viên trong những năm dạy học của mình. Hãy cùng lặn xuống!

R - JSON Files

JSON là gì?

Trước khi chúng ta bắt đầu, hãy nhanh chóng hiểu qua JSON là gì. JSON là viết tắt của JavaScript Object Notation. Đây là một định dạng dữ liệu nhẹ, dễ đọc và viết cho con người, và dễ phân tích và tạo ra cho máy móc. Hãy tưởng tượng nó như một cách để lưu trữ thông tin một cách có cấu trúc và tổ chức - giống như một tủ đựng hồ sơ rất ngăn nắp!

Cài đặt gói rjson

Để làm việc với các tệp JSON trong R, chúng ta cần một công cụ đặc biệt. Trong thế giới R, chúng ta gọi những công cụ này là "gói". Gói mà chúng ta sẽ sử dụng叫做 "rjson". Hãy cài đặt nó!

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

Khi bạn chạy những dòng này, R sẽ truy cập internet, tải xuống gói rjson, và sẵn sàng để chúng ta sử dụng. Điều này giống như đi đến một bộ công cụ kỹ thuật số và chọn đúng công cụ cho công việc của mình!

Dữ liệu đầu vào

Bây giờ chúng ta đã có công cụ của mình, hãy xem xét một số dữ liệu. Hãy tưởng tượng chúng ta có một tệp JSON叫做 "students.json" với thông tin về một số sinh viên. Nó có thể trông giống như này:

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

Tệp JSON này chứa một mảng sinh viên, nơi mỗi sinh viên có tên, tuổi và chuyên ngành. Nó giống như một cơ sở dữ liệu mini của lớp chúng ta!

Đọc tệp JSON

Bây giờ, hãy đọc tệp JSON này vào R. Chúng ta sẽ sử dụng hàm fromJSON() từ gói rjson:

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

Dòng này告诉 R để đọc tệp "students.json" và lưu nội dung của nó vào một biến叫做 json_data. Điều này giống như chúng ta đang đổ nội dung của tệp JSON vào một容器 trong R.

Hãy xem chúng ta đã có gì:

print(json_data)

Bạn nên thấy điều gì đó như sau:

$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"

Chúc mừng! Bạn vừa đọc tệp JSON đầu tiên của mình vào R!

Chuyển đổi JSON thành Data Frame

Mặc dù dữ liệu JSON bây giờ đã ở trong R, nhưng nó không ở định dạng tiện lợi nhất cho phân tích. Trong R, chúng ta thường thích làm việc với một thứ gọi là "data frame". Điều này giống như một bảng hoặc bảng tính. Hãy chuyển đổi dữ liệu JSON của chúng ta thành một data frame:

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

Wow! Điều này có vẻ phức tạp, phải không? Hãy phân tích nó:

  1. json_data$students truy cập phần "students" của dữ liệu JSON của chúng ta.
  2. lapply() áp dụng hàm as.data.frame() cho mỗi sinh viên trong danh sách.
  3. do.call(rbind, ...) lấy tất cả các data frame cá nhân và gộp chúng lại thành một data frame lớn.

Bây giờ, hãy xem data frame mới của chúng ta:

print(students_df)

Bạn nên thấy điều gì đó như sau:

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

Tuyệt vời! Bây giờ chúng ta có một bảng nhỏ gọn của dữ liệu sinh viên.

Làm việc với Data Frame

Bây giờ chúng ta đã có dữ liệu trong một data frame, chúng ta có thể dễ dàng thực hiện nhiều thao tác khác nhau trên nó. Dưới đây là một vài ví dụ:

  1. Lấy tuổi trung bình của sinh viên:
mean_age <- mean(students_df$age)
print(paste("Tuổi trung bình của sinh viên là:", mean_age))
  1. Tìm tất cả các sinh viên theo một chuyên ngành cụ thể:
cs_students <- students_df[students_df$major == "Computer Science", ]
print("Sinh viên theo chuyên ngành Khoa học máy tính:")
print(cs_students)
  1. Thêm một cột mới:
students_df$graduation_year <- 2023 + (22 - students_df$age)
print(students_df)

Kết luận

Và thế là chúng ta đã hoàn thành! Chúng ta đã đi từ việc cài đặt một gói, qua việc đọc một tệp JSON, đến việc chuyển đổi nó thành một data frame và thực hiện một số thao tác cơ bản. Bạn đã bước những bước đầu tiên vào thế giới của việc xử lý dữ liệu trong R!

Nhớ rằng, như bất kỳ kỹ năng nào, việc làm việc với JSON trong R sẽ dễ dàng hơn với sự luyện tập. Đừng sợ thử nghiệm và thử những điều mới. Ai biết được? Phát hiện dữ liệu lớn tiếp theo có thể đang chờ đợi bạn!

Dưới đây là bảng tóm tắt các hàm chính chúng ta đã sử dụng:

Hàm Gói Mô tả
install.packages() base R Cài đặt một gói
library() base R Tải một gói
fromJSON() rjson Đọc một tệp JSON
do.call() base R Xây dựng và thực hiện một cuộc gọi hàm
rbind() base R Kết hợp các đối tượng R theo hàng
lapply() base R Áp dụng một hàm cho một danh sách hoặc vector
as.data.frame() base R Ép thành một data frame
mean() base R Tính toán trung bình

Chúc bạn lập trình vui vẻ, và dữ liệu của bạn luôn sạch sẽ!

Credits: Image by storyset