Hướng dẫn chạy song song 2 phiên bản R để sử dụng được các package cũ và mới [Facebook]

https://www.tuhocr.com/gallery/toolbox

Package trong R là các gói lệnh được tác giả khắp nơi trên thế giới viết nên nhằm cung cấp các function giúp người sử dụng dễ dàng thực hiện được các thao tác xử lý dữ liệu phức tạp chỉ bằng các dòng lệnh đơn giản mà package đó cung cấp.

Vấn đề là theo thời gian thì khi R nâng cấp lên các phiên bản cao hơn (hiện tại là 4.3.1) thì một số thay đổi trong bản thân R về câu lệnh đã làm cho package cũ nếu không sửa lại code thì sẽ không thể run với phiên bản R mới nhất. Vì vậy, để có thể run được các package này (có thể tác giả package đó không còn update package theo kịp phiên bản R nữa, abc lý do có thể xảy ra) nên ta cần phải chạy song song cả 2 phiên bản R trên máy tính để phục vụ nhu cầu xử lý dữ liệu được suôn sẻ.

Cách tiếp cận là:

+ Bình thường ta vẫn cài đặt và update R cũng như RStudio ở các phiên bản mới nhất (lưu ý là: khi bạn đã cảm thấy mọi thứ đã ổn định trên máy tính thì cũng không cần phải update thường xuyên R hay RStudio và các gói package để đảm bảo mọi thứ tương thích, ổn định).

+ Khi bạn làm việc đụng đến chỗ nào cần sử dụng package cũ (mà không thể cài đặt ở phiên bản R hiện tại) thì bạn sẽ switch về phiên bản R cũ tương ứng với package đó để làm việc, thu được kết quả xử lý ở dạng đồ thị, bảng biểu... Sau thì sẽ switch trở lại phiên bản R mới nhất để làm việc tiếp.

Lưu ý là bạn cần cài đặt Rtools tương ứng ở các phiên bản R nữa nhé. Quy trình cài đặt Rtools mình có hướng dẫn ở đây.

https://youtu.be/fRZUrMHoyH4?feature=shared

Bản chất Rtools (dành cho hệ điều hành windows) cung cấp các gói lệnh để giúp compile/cài đặt được các package cần nhiều lệnh từ C hay các thư viện phụ trợ/dependency liên quan. Do đó nếu máy tính bạn ở hệ điều hành windows mà có cài R base và Rtools là coi như đủ bộ.

Vì các câu chuyện này tuy không khó hiểu nhưng dễ nhầm lẫn nếu bạn không nắm bắt tổng thể cách tiếp cận nên mình có soạn ra 2 file hướng dẫn sau để giúp mọi người thuận tiện triển khai trong thực tế nhé. Có gì thắc mắc bạn inbox mình để tháo gỡ problem nha. Chúc các bạn ứng dụng R có hiệu quả vào công việc.

Hình 1: https://tuhocr.netlify.app/toolbox/cai-dat-package-r-older-version-p1.png

Hình 2: https://tuhocr.netlify.app/toolbox/cai-dat-package-r-older-version-p2.png

Để đảm bảo tính liền mạch trong quá trình xử lý dữ liệu thì khâu kiểm soát hoạt động package run có ok trên phiên bản R hiện tại hay không rất quan trọng. Có nhiều cách để xử lý việc này, ví dụ như cài docker, hay máy ảo với phiên bản R cũ để chạy song song với phiên bản R hiện tại. Trong cách tiếp cận mình hướng dẫn thì ta tận dụng chức năng switch version mà RStudio cung cấp để đơn giản hóa quá trình thực hiện, ta chỉ cần chỉnh lại đường dẫn cho Rtools tương ứng với phiên bản R là xong.

Các bạn cũng có thể backup thư mục chứa package (cũng như file source package đó) để khi cần sử dụng ở phiên bản R nào thì ta cũng có sẵn file để thực hiện (khỏi cần tìm lại link trên github hay internet, vốn rất hay bị rotting theo thời gian).