logo xDuLieu.com

Trang trướcKhái quát về RTrang sau

Trong phần này ta điểm qua quá trình hình thành và phát triển của R. Tiếp đó tìm hiểu một số đặc điểm cơ bản của R. Sau đó xem xét đến các thế mạnh và những điểm hạn chế của R.

Lược sử hình thành và phát triển của R

 

Vào thập niên 1950, khi máy tính bắt đầu phát triển, một số ngôn ngữ lập trình như Fortran, Cobol, Algol đã được xây dựng; chủ yếu dùng để tính toán, giải quyết các vấn đề chung trong khoa học, kỹ thuật hay kinh tế. Đến 1976 John Chambers, Rick Becker và một số cộng sự ở Bell Labs bắt đầu nghiên cứu và phát triển ngôn ngữ S dành riêng cho các tính toán thống kê (phiên bản 1).

Đến 1978, S bắt đầu được sử dụng trong nội bộ của Bell Labs và một số trường đại học (phiên bản 2) và đến 1981 thì bắt đầu được phổ biến rộng rãi. Năm 1983 phiên bản 3 ra đời với sự áp dụng kỹ thuật lập trình hướng đối tượng. Năm 1995 phiên bản 4 ra đời, mở rộng từ các tính toán thống kê thành kỹ thuật xử lý dữ liệu.

Năm 1993, Ross Ihaca và Robert Gentleman, hai giáo sư dạy Thống kê tại đại học Auckland hợp tác với nhau để xây dựng và phát triển một công cụ giúp cho sinh viên có thể học và thực hành các tính toán thống kê thuận tiện hơn bằng cách sử dụng lại các cơ sở của S và Scheme, và R ra đời (R là chữ cái đầu của tên hai người).

Sau khi công bố, công cụ này được sự quan tâm và hưởng ứng của đông đảo những người làm công tác thống kê. Nhờ sự trợ giúp và khuyến khích của một số người, R trở thành phần mềm miễn phí, mã nguồn mở vào năm 1995. Từ đó nhóm phát triển R lớn mạnh dần, thêm John Chambers (người sáng lập ra S), Martin Marchler ở ETH Zurich, Kurt Hornik ở TU Wien, ... Cộng đồng những người sử dụng R cũng ngày càng lớn mạnh, có những đóng góp tích cực để phát triển R.


Các đặc điểm chính của R

 

Về cơ bản, R là một ngôn ngữ lập trình cấp cao, các câu lệnh tương đối gần gũi ngôn ngữ thông thường (tiếng Anh) chứ không thể hiện các hoạt động bên trong của máy tính như các ngôn ngữ lập trình cấp thấp. Điều này khiến việc viết lệnh cũng như đọc hiểu chương trình tương đối thuận tiện.

Mặt khác R, được xem như một ngôn ngữ lập trình thông dịch (interpreted language), điều này có nghĩa là chương trình sẽ được thực hiện từng dòng lệnh một, hết dòng này đến dòng khác. Vì vậy người sử dụng có thể cho thực hiện từng dòng lệnh một, sau khi có kết quả của một dòng lệnh thì viết tiếp một dòng lệnh khác rồi cho thực hiện dòng mới viết.

Điều này khiến người sử dụng có thể theo dõi sát sao hơn tiến trình thực hiện của chương trình, vì thế việc sửa chữa, điều chỉnh chương trình được dễ dàng hơn. Sau khi đã quen với cách thực hiện này, có thể nâng cấp lên để thực hiện một đoạn lệnh gồm một số dòng lệnh, từ đó tiến dần đến việc viết một chương trình hoàn chỉnh. Đây cũng chính là ý định của những người sáng lập ra S.

Tuy nhiên do tính chất "thông dịch" này mà việc thực hiện chương trình sẽ chậm hơn so với các ngôn ngữ lập trình biên dịch (compiled language) như C. Mặc dầu vậy. với sự phát triển của kỹ thuật phần cứng với các bộ vi xử lý có tốc độ cao, khuyết điểm này cũng không gây ảnh hưởng trầm trọng lắm cho các ứng dụng thông thường.


Các thế mạnh của R

 

R có những thế mạnh sau :

  • R có khả năng xử lý mạnh, chức năng phong phú. R có thể thực hiện hầu như mọi tác vụ có liên quan đến tính toán thống kê cũng như xử lý dữ liệu.
  • R cũng rất mềm dẻo, có thể tùy biến để tinh chỉnh điều kiện nhập dữ liệu, quá trình thực hiện cũng như hình thức xuất kết quả tùy theo yêu cầu cụ thể cũng như ý định của người sử dụng.
  • Kích thước phần mềm không lớn, khoảng 62 MB (phiên bản 3.5.1). Khi hoạt động cũng không chiếm nhiều bộ nhớ.
  • Có khả năng mở rộng rất mạnh khi sử dụng thêm các phụ kiện (package). Cho đến khi nội dung này được biên tập (tháng 11 năm 2018), CRAN lưu trữ trên 13000 phụ kiện khác nhau. Điều này giúp R trở thành một công cụ rất mạnh, có thể giải quyết được hầu như mọi vấn đề về thống kê và dữ liệu.
  • Cộng đồng người dùng R đông đảo, phần lớn là các nhà khoa học. Đây cũng là một cộng đồng rất năng động, có nhiều đóng góp tích cực trong việc phát triển R, đặc biệt là tạo ra các phụ kiện giúp R có khả năng ứng dụng các phương pháp mới, kỹ thuật mới nhanh hơn nhiều so với các phần mềm khác.
  • Chức năng đồ họa của R rất mạnh giúp thể hiện mọi loại biểu đồ với chất lượng rất cao. Về mặt này, nhiều nhà nghiên cứu đã đánh giá R cao hơn một số phần mềm thương mại khác.
  • Miễn phí : điều này đặc biệt quan trọng khi luật về bản quyền phần mềm được thực hiện một cách nghiêm ngặt và nguồn lực tài chính bị hạn chế.

Do các ưu thế này mà người sử dụng R ngày càng nhiều, đặc biệt là trong lĩnh vực học thuật. Ta có thể thấy xu thế trên qua Hình 1.

Hình 1 Thị phần của các phần mềm thống kê qua các năm

Nguồn : Statistical Software Popularity on Google Scholar


Những mặt hạn chế của R

 

R có một số mặt hạn chế sau :

  • Để thực hiện một tác vụ nào đó, người sử dụng phải viết câu lệnh, hầu như không có chức năng đồ họa để hỗ trợ (như kích chuột, kéo và thả). Điều này làm việc sử dụng khó khăn hơn, không thuận tiện như nhiều chương trình xử lý thống kê khác (như Excel, SPSS, JMP).
  • Cũng do nhược điểm trên mà dễ gặp sai sót hơn khi viết lệnh cũng như khi lập trình. Trong một số trường hợp ta khó biết được nguyên nhân của sai sót. Điều này rất thường gặp khi bắt đầu học và sử dụng R.
  • Do có rất nhiều hàm, nhiều lệnh trong R và phần lớn các hàm, các lệnh này lại rất mềm dẻo để có thể thích ứng được với nhiều tình huống khác nhau, vì thế trong nhiều trường hợp việc nắm bắt và sử dụng chúng gặp một số khó khăn.
  • Mặc dù có nhiều tài liệu, nhưng sự hỗ trợ cho người sử dụng trong khi viết và sửa chữa mã lệnh, xây dựng chương trình không được hiệu quả như nhiều chương trình xử lý thống kê khác.
  • Do những mặt hạn chế trên và việc học R không dễ dàng. (Bạn có thể xem thêm bài viết "Why R is Hard to Learn" của Robert A. Muechen)


Trang trướcVề đầu chươngTrang sau


Trang web này được cập nhật lần cuối ngày 22/11/2018