R (ngôn ngữ lập trình)

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm
R
Rlogo.png
Xuất hiện vào 1993 [1]
Thiết kế bởi Ross IhakaRobert Gentleman
Nhà phát triển R Development Core Team
Phiên bản mới nhất 3.0.3 (6 tháng 3, 2014; 36 ngày trước)
3.0.2 (25 tháng 9, 2013; 6 tháng trước)
3.0.1 (16 tháng 5, 2013; 10 tháng trước)
3.0.0 (3 tháng 4, 2013; 12 tháng trước)
2.15.3 (1 tháng 3, 2013; 13 tháng trước) sửa dữ liệu
Phiên bản thử nghiệm mới nhất Qua SVN
Ảnh hưởng từ S
Hệ điều hành Nhiều hệ điều hành
Giấy phép Giấy phép Công cộng GNU
Trang mạng http://www.r-project.org/

R là một ngôn ngữ lập trình và môi trường phần mềm dành cho tính toán và đồ họa thống kê. Đây là một bản hiện thực ngôn ngữ lập trình S với ngữ nghĩa khối từ vựng lấy cảm hứng từ Scheme. R do Ross IhakaRobert Gentleman tạo ra[2] tại Đại học Auckland, New Zealand, đến nay do R Development Core Team chịu trách nhiệm phát triển. Tên của ngôn ngữ một phần lấy từ chữ cái đầu của hai tác giả (Robert Gentleman và Ross Ihaka), một phần cũng là cách chơi chữ từ tên S[3].

Ngôn ngữ R đã trở thành một tiêu chuẩn trên thực tế (de facto) giữa các nhà thống kê cho thấy sự phát triển của phần mềm thống kê[4][5], và được sử dụng rộng rãi để phát triển phần mềm thống kê và phân tích dữ liệu[5].

R là một bộ phận của dự án GNU[6]. Mã nguồn của nó được công bố tự do theo Giấy phép Công cộng GNU, và có các phiên bản dịch sẵn cho nhiều hệ điều hành khác nhau. R sử dụng giao diện dòng lệnh, tuy cũng có một vài giao diện đồ họa người dùng dành cho nó.

Tính năng[sửa | sửa mã nguồn]

R có chứa nhiều loại kỹ thuật thống kê (mô hình hóa tuyến tínhphi tuyến, kiểm thử thống kê cổ điển, phân tích chuỗi thời gian, phân loại, phân nhóm, v.v.) và đồ họa. R, giống như S, được thiết kế xoay quanh một ngôn ngữ máy thực thụ, và nó cho phép người dùng thêm các tính năng bổ sung bằng cách định nghĩa các hàm mới. Cũng có một số khác biệt quan trọng đối với S, nhưng nhiều mã viết bằng S vẫn chạy được mà không cần thay đổi. Nhiều hệ thống trong R được viết bằng chính ngôn ngữ của nó, giúp cho người dùng dễ theo dõi các giải thuật. Để thực hiện công việc chuyên về tính toán, R có thể liên kết được với ngôn ngữ C, C++Fortran để có thể được gọi trong khi chạy. Người dùng thông thạo có thể viết mã C để xử lý trực tiếp các đối tượng của R.

R cũng có tính mở rộng cao bằng cách sử dụng các gói cho người dùng đưa lên cho một số chức năng và lĩnh vực nghiên cứu cụ thể. Do được thừa hưởng từ S, R có nền tảng lập trình hướng đối tượng mạnh hơn đa số các ngôn ngữ tính toán thống kê khác. Việc mở rộng R cũng dễ dàng nhờ các luật đóng khối từ vựng.[7]

Một điểm mạnh khác của R là nền tảng đồ họa của nó, có thể tạo ra những đồ thị chất lượng cao cùng các biểu tượng toán học. R cũng có đinh dạng văn bản riêng tương tự như LaTeX, dùng để cung cấp tài liệu hướng dẫn toàn diện, có trực tuyến ở các định dạng khác nhau và cả bản in.

Dù R được dùng chủ yếu bởi những nhà thống kê và những người sử dụng khác đòi hỏi một môi trường tính toán thống kê và phát triển phần mềm, nó cũng có thể dùng làm một công cụ tính toán ma trận tổng quát với các kết quả đo đạc cạnh tranh so với GNU Octave và đối thủ thương mại của nó, MATLAB.[8] Giao diện RWeka[9] đã được thêm vào phần mềm khai phá dữ liệu phổ biến Weka, cho phép đọc/ghi định dạng arff vì vậy cho phép sử dụng tính năng khai phá dữ liệu trong Weka và thống kê trong R.

Ví dụ[sửa | sửa mã nguồn]

Các ví dụ sau minh họa cho cú pháp cơ bản của ngôn ngữ và cách dùng giao diện dòng lệnh.

Đồ thị dự đoán do hàm plot.lm() tạo ra. Các tính năng có thể thấy là các ký hiệu toán học ở các tên trục, ở phía dưới bên trái.
> x <- c(1,2,3,4,5,6)   # Tạo tập hợp có thứ tự
> y <- x^2              # Bình phương các phần tử trong x
> mean(y)               # Tính trung bình số hoc của y
[1] 15.16667
> var(y)                # Tính phương sai mẫu
[1] 178.9667
> summary(lm(y ~ x))    # Ước lượng mô hình hồi quy tuyến tính

Call:
lm(formula = y ~ x)

Residuals:
1       2       3       4       5       6
3.3333 -0.6667 -2.6667 -2.6667 -0.6667  3.3333

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)  -9.3333     2.8441  -3.282 0.030453 *
x             7.0000     0.7303   9.585 0.000662 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.055 on 4 degrees of freedom
Multiple R-squared: 0.9583,     Adjusted R-squared: 0.9478
F-statistic: 91.88 on 1 and 4 DF,  p-value: 0.000662

> par(mfrow=c(2, 2))    # Gọi đồ thị kích thước 2x2
> plot(lm(y ~ x))       # Vẽ đồ thị dự đoán của mô hình hồi quy

Các mốc quan trọng[sửa | sửa mã nguồn]

Một số mốc quan trọng trong quá trình phát triển.

  • Phiên bản 0.16 – Đây là bản alpha cuối cùng do Ihaka và Gentleman phát triển. Đa số các tính năng cơ bản trong "Sách Trắng" đã được hiện thực. Danh sách gửi thư bắt đầu vào ngày 1 tháng 4 năm 1997.
  • Phiên bản 0.49 – 23 tháng 4, 1997 – Đây là bản phát hành mã nguồn cũ nhất, và dịch trên một số hệ điều hành tương tự Unix. CRAN được bắt đầu vào ngày này, với 3 trang gương ban đầu chứa 12 gói. Phiên bản alpha của R dành cho Microsoft Windows và Mac OS đã được đưa lên một thời gian ngắn sau phiên bản này.
  • Phiên bản 0.60 – 5 tháng 12, 1997 – R trở thành một phần chính thức của Dự án GNU. Mã nguồn được lưu giữ và bảo trì trên CVS.
  • Phiên bản 1.0.0 – 29 tháng 2, 2000 – Được các nhà phát triển xem là đủ ổn định để sử dụng đại trà[10].
  • Phiên bản 1.4.0 – Các phương thức S4 được giới thiệu và phiên bản đầu tiên dành cho Mac OS X được phát hành ngay sau đó.
  • Phiên bản 2.0.0 – Giới thiệu lazy loading, cho phép tải nhanh dữ liệu mà ít tốn bộ nhớ.
  • Phiên bản 2.9.0 – Gói 'Matrix' giờ là gói đề nghị chứa trong bản phân phối R cơ bản.

Liên kết ngoài[sửa | sửa mã nguồn]

Tham khảo[sửa | sửa mã nguồn]

  1. ^ A Brief History R: Past and Future History, Ross Ihaka, Statistics Department, The University of Auckland, Auckland, New Zealand, có tại website CRAN
  2. ^ “Robert Gentleman's home page”. Truy cập ngày 20 tháng 7 năm 2009. 
  3. ^ Kurt Hornik. The R FAQ: Why is R named R?. ISBN 3-900051-08-9. Truy cập ngày 29 tháng 1 năm 2008. 
  4. ^ Fox, John and Andersen, Robert (January 2005). "Using the R Statistical Computing Environment to Teach Social Statistics Courses" (PDF). Department of Sociology, McMaster University. Truy cập ngày 2006-08-03.
  5. ^ a ă Vance, Ashlee (6 tháng 1 năm 2009). “Data Analysts Captivated by R's Power”. New York Times. Truy cập ngày 28 tháng 4 năm 2009. “R is also the name of a popular programming language used by a growing number of data analysts inside corporations and academia. It is becoming their lingua franca...” 
  6. ^ “What is R?”. Truy cập ngày 28 tháng 4 năm 2009. 
  7. ^ Jackman, Simon (Spring 2003). “R For the Political Methodologist” (PDF). The Political Methodologist (Political Methodology Section, American Political Science Association) 11 (1): 20–22. Truy cập ngày 3 tháng 8 năm 2006. 
  8. ^ “Speed comparison of various number crunching packages (version 2)”. SciView. Truy cập ngày 3 tháng 11 năm 2007. 
  9. ^ “RWeka: An R Interface to Weka. R package version 0.3-17”. Kurt Hornik, Achim Zeileis, Torsten Hothorn and Christian Buchta. Truy cập 2009. 
  10. ^ Peter Dalgaard. “R-1.0.0 is released”. Truy cập ngày 6 tháng 6 năm 2009.