Menu
CoddyTech

Cheat sheet R

Cập nhật lần cuối

Hello World & assignment

Toán tử gán quen thuộc của R là <- (toán tử = cũng dùng được).

Thao tácCú pháp
In một giá trịprint("Hello, World!")
Tự in ra (console)"Hello, World!"
Nối và in racat("Hi", name, "\n")
Gán (cách quen dùng)x <- 5
Gán (cũng hợp lệ)x = 5
Gán sang phải5 -> x
Chú thích# this is a comment
Chạy một scriptRscript app.R

Kiểu dữ liệu và vector

Vector là cấu trúc dữ liệu nền tảng của R; ngay cả một giá trị đơn cũng là vector có độ dài 1.

Thao tácCú pháp
Vector sốv <- c(1, 2, 3)
Vector ký tựs <- c("a", "b")
Vector logicb <- c(TRUE, FALSE)
Dãy số nguyên1:10
Dãy có bước nhảyseq(0, 1, by = 0.1)
Lặp lại giá trịrep(0, times = 5)
Các kiểu cơ bảnnumeric, character, logical, integer, complex
Kiểm tra / ép kiểuclass(x), as.numeric("42")

Phép toán trên vector

Phép toán được vector hóa và áp dụng cho từng phần tử; chỉ số bắt đầu từ 1.

Thao tácCú pháp
Truy cập phần tử (bắt đầu từ 1)v[1]
Cắt một đoạnv[2:4]
Lọc theo điều kiện logicv[v > 2]
Bỏ một phần tửv[-1]
Tính toán theo từng phần tửv * 2, v1 + v2
Độ dàilength(v)
Các hàm thu gọn thông dụngsum(v), mean(v), max(v)
Sắp xếp / đảo ngượcsort(v), rev(v)
Vector có tênc(a = 1, b = 2)

Data frame

Data frame là một bảng gồm các cột, mỗi cột là một vector có cùng độ dài.

Thao tácCú pháp
Tạo data framedf <- data.frame(name = c("Ada"), age = c(30))
Những hàng đầu / cuốihead(df), tail(df)
Kích thướcnrow(df), ncol(df), dim(df)
Tên cộtnames(df), colnames(df)
Chọn một cộtdf$age hoặc df[["age"]]
Chọn hàng / cộtdf[1, ], df[, "age"]
Lọc hàngdf[df$age > 18, ]
Thêm cộtdf$adult <- df$age >= 18
Thống kê tóm tắtsummary(df)
Tổng quan cấu trúcstr(df)

Factor và list

Factor lưu dữ liệu phân loại; list chứa các phần tử thuộc nhiều kiểu khác nhau.

Thao tácCú pháp
Tạo factorf <- factor(c("low", "high"))
Các mức của factorlevels(f)
Factor có thứ tựfactor(x, ordered = TRUE)
Đếm theo mứctable(f)
Tạo listl <- list(name = "Ada", scores = c(1, 2))
Truy cập theo tênl$name hoặc l[["name"]]
Truy cập theo vị tríl[[1]]
List con (vẫn là list)l[1]
Độ dài / tênlength(l), names(l)

Luồng điều khiển

Điều kiện đặt trong ngoặc đơn, khối lệnh đặt trong ngoặc nhọn.

Thao tácCú pháp
If / else if / elseif (x > 0) { ... } else if (x < 0) { ... } else { ... }
if-else vector hóaifelse(v > 0, "pos", "neg")
For loopfor (i in 1:10) { ... }
Vòng lặp for qua vectorfor (x in v) { ... }
While loopwhile (x < 100) { ... }
Lặp với breakrepeat { if (done) break }
Switchswitch(key, a = 1, b = 2)
Toán tử logic&&, ||, ! (giá trị đơn); &, | (vector)

Hàm

Hàm là đối tượng hạng nhất; biểu thức được tính cuối cùng sẽ được trả về.

Thao tácCú pháp
Định nghĩa hàmadd <- function(a, b) { a + b }
Trả về tường minhreturn(a + b)
Đối số mặc địnhgreet <- function(name = "World") { ... }
Đối số variadicf <- function(...) { sum(...) }
Gọi theo tên đối sốbox(w = 2, h = 3)
Hàm ẩn danhfunction(x) x * 2
Hàm ẩn danh (viết tắt)\(x) x * 2
Truyền vào hàm bậc caosapply(1:3, function(x) x^2)

Họ apply

Áp dụng một hàm lên dữ liệu mà không cần viết vòng lặp tường minh.

HàmChức năng
apply(m, 1, sum)Áp dụng theo hàng (1) hoặc cột (2) của ma trận
sapply(v, f)Áp dụng lên vector, rút gọn thành vector/ma trận
lapply(v, f)Áp dụng lên vector, luôn trả về list
vapply(v, f, numeric(1))Giống sapply nhưng kiểm tra kiểu trả về
mapply(f, a, b)Áp dụng song song lên nhiều vector
tapply(x, group, mean)Áp dụng một hàm theo từng nhóm
Map(f, a, b)Apply nhiều biến, trả về list
Reduce(+, v)Gộp một vector bằng một hàm hai ngôi

Các hàm xử lý dữ liệu và thống kê thông dụng

Những hàm base hay dùng để tóm tắt và định hình lại dữ liệu.

HàmChức năng
mean(v) / median(v)Trung bình / trung vị
sd(v) / var(v)Độ lệch chuẩn / phương sai
min(v) / max(v) / range(v)Nhỏ nhất / lớn nhất / cả hai
quantile(v)Phân vị (ví dụ tứ phân vị)
table(x)Tần suất của các giá trị
unique(v) / duplicated(v)Giá trị khác nhau / đánh dấu trùng lặp
is.na(v) / na.omit(df)Tìm / bỏ giá trị thiếu
aggregate(y ~ g, df, mean)Tóm tắt y theo nhóm g
order(v)Thứ tự chỉ số để sắp xếp
cor(x, y)Tương quan giữa hai vector

Những cú pháp R bạn dùng nhiều nhất, gói gọn trong một trang. Cheat sheet R này là bảng tra cứu nhanh cho phần cốt lõi của ngôn ngữ: phép gán và kiểu dữ liệu, vector và phép toán trên vector, data frame, factor và list, luồng điều khiển, hàm, và họ apply được dùng khắp nơi trong phân tích dữ liệu với rstats.

Mọi thứ ở đây là R gốc (base R), chạy trên bản cài đặt mặc định, không cần package nào thêm. Sao chép phần bạn cần, hoặc chạy thử từng đoạn code trong R playground, không cần thiết lập gì.

Câu hỏi thường gặp về cheat sheet R

Cheat sheet R này có miễn phí không?

Có. Cheat sheet R này hoàn toàn miễn phí, không cần đăng ký. Hãy lưu dấu trang và quay lại bất cứ khi nào bạn cần tra một phép toán vector, phương thức data frame hay hàm thống kê.

Vector trong R có thật sự bắt đầu chỉ số từ 1 không?
Đúng vậy. Khác với hầu hết ngôn ngữ lập trình, chỉ số trong R bắt đầu từ 1, nên v[1] trả về phần tử đầu tiên và v[length(v)] trả về phần tử cuối. Chỉ số âm có ý nghĩa đặc biệt: v[-1] bỏ phần tử đầu tiên chứ không đếm từ cuối. Quy ước bắt đầu từ 1 này áp dụng cho cả vector, list lẫn data frame.
Data frame trong R là gì?
Data frame là kiểu bảng của R: tập hợp các cột, mỗi cột là một vector có cùng độ dài, và các cột khác nhau có thể chứa kiểu khác nhau (số, văn bản, factor). Đây là cấu trúc chuẩn cho tập dữ liệu, với hàng là quan sát và cột là biến. Bạn truy cập bằng df[rows, columns], chọn một cột bằng df$name, và xem cấu trúc bằng str(df) hoặc summary(df).
Có thể luyện tập R online không?

Có. Mở R playground để chạy bất kỳ đoạn code nào trong cheat sheet này ngay trên trình duyệt, không cần cài R hay RStudio. Khi muốn học có lộ trình, khóa học R tương tác miễn phí của Coddy đưa bạn từng bước từ vector và data frame đến họ apply và thống kê.

Cheat sheet này có phù hợp cho người mới bắt đầu không?

Có. Trang được sắp xếp từ các chủ đề phổ biến nhất (phép gán, vector, data frame) đến các chủ đề nâng cao (họ apply và các hàm thống kê), nên bạn dùng được các phần đầu ngay từ ngày đầu tiên và dần làm quen với phần còn lại.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học R cùng Coddy

Bắt đầu