Danh sách package R phân tích dữ liệu

Biên soạn

Duc Nguyen | Founder of tuhocr.com

Cập nhật

2026 August 09

class register ‍ ‍ ‍

1 Mở đầu

R là ngôn ngữ lập trình để xử lý dữ liệu hàng đầu hiện nay, được thiết kế chuyên để xử lý thống kê và vẽ đồ thị. Đặc điểm của R là các câu lệnh được tối ưu để tính toán theo kiểu vector, ta có thể sử dụng các function từ gói package R Base mặc định cũng như từ các package chuyên môn (bản chất là các câu lệnh R được đóng gói thành function) để tính toán nhanh gọn một tác vụ xử lý dữ liệu cụ thể.

Bạn có thể tham khảo danh sách tổng hợp các package chuyên môn theo chủ đề được nhóm phát triển R Core Team tổng hợp ở đây CRAN Task Views.

Trong file HTML này mình tổng hợp các package và cụm lệnh thường sử dụng khi phân tích dữ liệu. Hy vọng sẽ hữu ích cho bạn để nhanh chóng áp dụng các package này vào công việc. Các bạn có thể đóng góp thêm cho danh sách được đầy đủ bằng cách chia sẻ trên Group Cộng Đồng Tự Học R nhé. Cảm ơn các bạn rất nhiều.

Để hiểu rõ hơn cách cài đặt package trong R, bạn xem video này nhé. Bài giảng.

Các câu lệnh nâng cao khi xử lý package trong R. Link.

2 R Base

Khi mở phiên làm việc (session) trong RStudio, bạn dùng câu lệnh sau sẽ liệt kê các package mặc định của R Base.

cat(search() , sep = "\n")
.GlobalEnv
package:dplyr
package:stats
package:graphics
package:grDevices
package:utils
package:datasets
package:methods
Autoloads
package:base

Các lệnh R cơ bản thường dùng được mình trình bày chi tiết trong khóa học R for Data Science. Link

Summary dữ liệu

aggregate(weight ~ group,
          x = PlantGrowth,
          FUN = mean)
  group weight
1  ctrl  5.032
2  trt1  4.661
3  trt2  5.526

3 Xử lý dữ liệu

3.1 Package dplyr

Đây là package được thiết kế theo phương thức lập trình dùng dấu %>% hay |> để đẩy kết quả phân tích từ bên trái qua tham số thứ nhất của function bên phải, thuận tiện tạo luồng code (chain), tái sử dụng đoạn code khi chỉ cần thay đổi dataset đầu vào.

Sắp xếp dữ liệu

library(dplyr)

# from small to big theo Girth
trees[1:6, ] |> dplyr:::arrange(Girth)
  Girth Height Volume
1   8.3     70   10.3
2   8.6     65   10.3
3   8.8     63   10.2
4  10.5     72   16.4
5  10.7     81   18.8
6  10.8     83   19.7
# from big to small theo Girth
trees[1:6, ] |> dplyr:::arrange(dplyr:::desc(Girth))
  Girth Height Volume
1  10.8     83   19.7
2  10.7     81   18.8
3  10.5     72   16.4
4   8.8     63   10.2
5   8.6     65   10.3
6   8.3     70   10.3

Summary dữ liệu

library(dplyr)

mtcars |> dplyr:::group_by(cyl) |> 
  dplyr:::summarise(mean_wt = mean(wt),
                    sd_wt = sd(wt),
                    count = dplyr:::n()) |> as.data.frame()
  cyl  mean_wt     sd_wt count
1   4 2.285727 0.5695637    11
2   6 3.117143 0.3563455     7
3   8 3.999214 0.7594047    14

4 Phân tích thống kê

4.1 Package careffects

Package này được viết bởi John Fox, sử dụng khi phân tích hồi quy. Chi tiết câu lệnh được hướng dẫn trong tài liệu An R Companion to Applied Regression. Link

Lệnh kiểm tra phân phối chuẩn bằng đồ thị QQ plot

par(pty = "s")
par(oma = c(0,0,0,0))
par(mar = c(2,4,0,2))

car:::qqPlot(mtcars$mpg)

Vẽ đường mật độ xác suất ellipse

par(pty = "s")
par(oma = c(0,0,0,0))
par(mar = c(2,4,0,2))

plot(Volume ~ Height,
       data =  trees,
       col = "darkgreen",
       pch = 19,
      xlim = c(40,100),
       ylim = c(-10,80))

car:::dataEllipse.formula(Volume ~ Height,
                  data =  trees,
                 col = "lightblue",
                 pch = NA,
                 center.pch = FALSE,
                 fill = TRUE,
                 levels = c(0.5, 0.9),
                 fill.alpha = 0.3,
                 lty = 2,
                 add = T)

Vẽ đường effects plot | Vignettes

library(effects)

mtcars$cyl <- factor(mtcars$cyl)

fit <- lm(mpg ~ wt * cyl,
          data = mtcars)

effects:::plot.efflist(effects:::predictorEffects(fit),
                       lines = list(multiline = FALSE))

effects:::plot.efflist(effects:::predictorEffects(fit),
                       lines = list(multiline = TRUE))

5 Machine learning

5.1 Package caret

6 Các lệnh làm việc với packge

Nhiều package có hiện tượng dùng trùng tên function, vì vậy ta nên khai báo triệt để đến namespace của function đó, bằng cách dùng dấu :::. Ví dụ muốn sử dụng function arrange() trong package dplyr, bạn nên dùng cú pháp sau dplyr:::arrange() để đảm bảo cho R dò tên function trong phạm vi package dplyr chứ không dùng nhầm qua package khác.

packageVersion("car")

install.packages("car")
remove.packages("car")

install.packages("https://cran.r-project.org/src/contrib/Archive/FAOSTAT/FAOSTAT_2.2.4.tar.gz",
                 repos = NULL,
                 type = "source")

library(devtools)
install_version("ggplot2", version = "0.9.1", repos = "http://cran.us.r-project.org")

# chỉ detach package và function thôi
unloadNamespace("plot.matrix")

detach("package:plot.matrix",
       unload = TRUE,
       force = TRUE)

### detach triệt để package và method đi kèm
pkgload:::unload("plot.matrix")
devtools::unload("plot.matrix")