Thiết kế bởi | Ross Ihaka và Robert Gentleman |
---|---|
Nhà phát triển | R Development Core Team |
Xuất hiện lần đầu | 1993 |
Phiên bản ổn định | 2.15.2
/ 26 tháng 10 năm 2012; 11 năm trước |
Bản xem thử | Qua SVN
|
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/ |
Ảnh hưởng từ | |
S |
R là một ngôn ngữ lập trình và môi trường phần mềm chuyên dụng cho tính toán và đồ họa thống kê. Đây là phiên bản thực hiện ngôn ngữ S với cú pháp lấy cảm hứng từ Scheme. R được phát triển bởi Ross Ihaka và Robert Gentleman tại Đại học Auckland, New Zealand, hiện do R Development Core Team quản lý. Tên gọi của ngôn ngữ này được ghép từ chữ cái đầu của hai tác giả (Robert Gentleman và Ross Ihaka) và cũng là một trò chơi chữ từ tên ngôn ngữ S.
Ngôn ngữ R đã trở thành tiêu chuẩn thực tiễn (de facto) trong cộng đồng thống kê, chứng tỏ sự phát triển vượt bậc của phần mềm thống kê và được sử dụng rộng rãi trong phân tích dữ liệu và phát triển phần mềm thống kê.
R là một phần của dự án GNU. Mã nguồn của nó được phát hành dưới Giấy phép Công cộng GNU và có sẵn các phiên bản cho nhiều hệ điều hành khác nhau. R chủ yếu sử dụng giao diện dòng lệnh, mặc dù cũng có một số giao diện đồ họa dành cho người dùng.
Các tính năng
R cung cấp nhiều kỹ thuật thống kê đa dạng (bao gồm mô hình hóa tuyến tính và phi tuyến, kiểm định thống kê truyền thống, phân tích chuỗi thời gian, phân loại, phân nhóm,...) cùng với các công cụ đồ họa. Giống như S, R được xây dựng xung quanh một ngôn ngữ máy thực sự, cho phép người dùng mở rộng chức năng bằng cách định nghĩa các hàm mới. Mặc dù có một số khác biệt quan trọng so với S, nhiều mã nguồn viết bằng S vẫn có thể chạy mà không cần sửa đổi. Hệ thống trong R thường được viết bằng chính ngôn ngữ của nó, giúp người dùng dễ dàng theo dõi các thuật toán. Để xử lý các công việc tính toán chuyên sâu, R có thể tích hợp với ngôn ngữ C, C++ và Fortran, và người dùng thành thạo có thể viết mã C để thao tác trực tiếp với các đối tượng của R.
R cũng hỗ trợ mở rộng thông qua các gói mà người dùng có thể tạo ra cho các chức năng và lĩnh vực nghiên cứu cụ thể. Nhờ vào nền tảng kế thừa từ S, R sở hữu khả năng lập trình hướng đối tượng mạnh mẽ hơn so với hầu hết các ngôn ngữ thống kê khác. Việc mở rộng R trở nên dễ dàng nhờ các quy tắc ngữ nghĩa khối từ vựng.
Một trong những ưu điểm nổi bật của R là khả năng đồ họa, cho phép tạo ra các đồ thị và biểu tượng toán học chất lượng cao. R cũng cung cấp định dạng văn bản tương tự như LaTeX để soạn thảo tài liệu hướng dẫn chi tiết, với các tùy chọn xuất bản cả trực tuyến và in ấn.
Mặc dù R chủ yếu được sử dụng bởi các nhà thống kê và những người cần 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ể hoạt động như một công cụ tính toán ma trận tổng quát với hiệu suất cạnh tranh so với GNU Octave và MATLAB. Giao diện RWeka đã được tích hợp vào phần mềm khai thác dữ liệu Weka, cho phép đọc/ghi định dạng arff, nhờ đó kết hợp được tính năng khai thác dữ liệu trong Weka và thống kê trong R.
Ví dụ
Dưới đây là một số ví dụ giúp bạn hiểu rõ cú pháp cơ bản của ngôn ngữ và cách sử dụng giao diện dòng lệnh.
> x <- c(1,2,3,4,5,6) # Tạo một dãy số > y <- x^2 # Tính bình phương các phần tử của x > mean(y) # Tính giá trị trung bình của y [1] 15.16667 > var(y) # Tính phương sai của mẫu [1] 178.9667 > summary(lm(y ~ x)) # Tóm tắt 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 trên 4 bậc tự Multiple R-squared: 0.9583, Adjusted R-squared: 0.9478 F-statistic: 91.88 trên 1 và 4 DF, p-value: 0.000662 > par(mfrow=c(2, 2)) # Thiết lập kích thước đồ thị 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
Những điểm 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 được phát triển bởi Ihaka và Gentleman. Hầu hết các tính năng chính trong 'Sách Trắng' đã được triển khai. Danh sách gửi thư bắt đầu từ ngày 1 tháng 4 năm 1997.
- Phiên bản 0.49 – 23 tháng 4 năm 1997 – Đây là phiên bản mã nguồn cũ nhất, được dịch cho một số hệ điều hành tương tự Unix. CRAN ra mắt vào ngày này, với 3 gương ban đầu chứa 12 gói. Phiên bản alpha của R cho Microsoft Windows và Mac OS đã được phát hành một thời gian ngắn sau đó.
- Phiên bản 0.60 – 5 tháng 12 năm 1997 – R chính thức trở thành một phần của Dự án GNU. Mã nguồn được lưu trữ và bảo trì trên CVS.
- Phiên bản 1.0.0 – 29 tháng 2 năm 2000 – Được các nhà phát triển coi là đủ ổn định để sử dụng rộng rãi.
- 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 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 dữ liệu nhanh chóng mà không tiêu tốn nhiều bộ nhớ.
- Phiên bản 2.1.0 – Hỗ trợ mã hóa UTF-8, đồng thời bắt đầu quá trình quốc tế hóa và bản địa hóa cho các ngôn ngữ khác nhau.
- Phiên bản 2.9.0 – Gói 'Matrix' giờ đây được xem là gói đề xuất trong bản phân phối R cơ bản.
Giao diện
Giao diện đồ họa
- R Studio - Môi trường phát triển tích hợp đa nền tảng, có thể chạy từ xa trên máy Linux
- Deducer - Giao diện dựa trên menu
- Java GUI for R (JGR) - Trình biên tập và terminal R được viết trên nền Java
- Rattle GUI - Giao diện dựa trên RGtk2, thiết kế cho khai thác dữ liệu
- R Commander
- Revolution Analytics -
- RGUI
- RKWard
- RWeka - Hỗ trợ tính năng khai thác dữ liệu trong Weka và phân tích thống kê trong R
Liên kết ngoài
- Dự án R cho Phân tích Thống kê (trang chính thức của R)
- Wessa.net - Khung R cho Thống kê và Dự đoán
- R trên DMOZ
Ngôn ngữ lập trình | |
---|---|
Dùng cho kỹ nghệ |
|
Dùng trong giảng dạy |
|
Có giá trị lịch sử |
|