R-012 Cài đặt thư viện cho R

Nội dung bài viết

R cung cấp rất nhiều tiện ích mạnh mẽ. Tuy nhiên nó vẫn chưa là gì đối với kho thư viện khổng lồ của R.

Vì là ngôn ngữ thống kê lâu đời, nên cộng đồng nguồn mở của R rất mạnh, rất nhiều thư viện được cộng đồng triển khai (thư viện đồ họa, các thư viện đến định lượng tài chính, quản lí rủi ro, tính toán sinh học,…).

1. Cách cài đặt thư viện

Trên Windows thì thường mọi việc cài đặt rất suôn sẻ, trên Linux thì rắc rối hơn nhiều đôi khi sẽ bị thiếu rất nhiều package (có thể cài thêm, tùy theo hệ điều hành mà cách cài khác nhau nên phần này mình không đề cập ở đây). Trên Linux thì nên dùng bản R của CRAN.

Lệnh cài đặt của R rất đơn giản, install.packages(...) tham số đầu vào là tên các thư viện cần cài đặt. Ví dụ:

install.packages("tidyverse")

Để nạp thư viện vào phiên làm việc trên R:

library(tidyverse)
-- Attaching packages --------------------------------------- tidyverse 1.2.1 --
v ggplot2 2.2.1     v purrr   0.2.4
v tibble  1.4.2     v dplyr   0.7.5
v tidyr   0.8.1     v stringr 1.3.1
v readr   1.1.1     v forcats 0.3.0
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()

Một công cụ khác khá hữu ích (chủ yếu developer dùng nhiều) là devtools, nó cho phép bạn có thể cài được các package ở cả github, bitbucket

Danh sách một số thư viện đáng lưu ý:

Hàm Ghi chú
tidyverse Đúng hơn là một gói package khá đình đám bao gồm ggplot2, tibble, stringr, readr, dplyr, tidyr, purrr, forcats. Đây là một trong những thư viện mạnh nhất và được cộng đồng R khuyến khích sử dụng để thay thế một số thành phần có sẳn của R. http://r4ds.had.co.nz/
ggplot2 Thư viện đồ họa cực đẹp, dịu mắt
tibble Thay thế data.frame của R
stringr Thay thế kiểu chuổi trong R
psycho Gọi là thư viện tâm lý học vậy thôi… chứ nó đa năng lắm…
RoughSets Thư viện tập thô, chuyên dùng để rút gọn thuộc tính.
mlr Dành cho các bạn đam mê Machine Learning
RWeka R interface đình đám cho Weka - một phần mềm Data Mining rất mạnh.
Leaflet Một thư viện bản đồ tương tác (phải dùng devtools để cài)
Keras Neural networks, Deep Learning với R
h2o Một thư viện Machine Learning rất mạnh hệ sinh thái doanh nghiệp.
FRAPO Quản lí rủi ro, tối ưu đầu tư R
rvest Web scraping với R
scatterplot3d Một thư viện đồ họa mạnh mẽ
sparklyr Làm việc với Spark do dân BigData
funModeling Một tool-box thú vị của https://livebook.datascienceheroes.com/
rgl Một thư viện OpenGL có thể xuất ra WebGL, PNG, SVG, PLY, OBJ,…

2. Một số điểm lưu ý

Vì R đã hổ trợ rất nhiều rồi nên khi mới bắt đầu bạn nên tìm thử xem thư viện mình cần có hay chưa.

Thường thì các thư viện trên R được viết từ C/C++ qua chứ không phải trên ngôn ngữ R nên tốc độ khá nhanh (ngay cả Python cũng vậy, rất nhiều thư viện của Python và R bản chất là interface thôi). R có vài interfaces tới các ngôn ngữ khác bao gồm Rcpp (cho C++), rJava (cho Java), rPython (cho Python) và gần đây là cả V8 (cho Javascript), nếu bạn đọc cần sử dụng kết hợp trộn lẫn giữa các ngôn ngữ thì đây là một lựa chọn hoàn hảo.

Thư viện RMarkdown + KnitR rất mạnh để tạo ra một bài báo cáo tuyệt đẹp. Thực ra thì R cũng có Jupyter Notebook từ cộng đồng, nếu bạn đọc cần thiết Jupyter Notebook thì có thể cài đặt R Kernel.