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

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 Ihaka và Robert Gentleman tạo ra 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.
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ê, 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.
R là một bộ phận của dự án GNU. 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.
R có chứa nhiều loại kỹ thuật thống kê (mô hình hóa tuyến tính và phi 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à đồ 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++ và 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.
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. Giao diện RWeka đã đượ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ụ.
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.
&gt; x &lt;- c(1,2,3,4,5,6) # Tạo tập hợp có thứ tự
&gt; y &lt;- x^2 # Bình phương các phần tử trong x
&gt; mean(y) # Tính trung bình số hoc của y
[1] 15.16667
&gt; var(y) # Tính phương sai mẫu
[1] 178.9667
&gt; 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(&gt;|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
&gt; par(mfrow=c(2, 2)) # Gọi đồ thị kích thước 2x2
&gt; plot(lm(y ~ x)) # Vẽ đồ thị dự đoán của mô hình hồi quy
Các mốc quan trọng.
Một số mốc quan trọng trong quá trình phát triển.