Cài đặt R và RStudio
R là tên của một ngôn ngữ lập trình. Rstudio là công cụ để giao tiếp với ngôn ngữ R. RStudio hỗ trợ giao diện người dùng (GUI)
RStudio GUI
Giao diện RStudio gồm 4 cửa sổ chính:
Dưới cùng bên trái: là cửa sổ lệnh, hay console
window. Bạn có thể gõ lệnh tại dấu nhắc > và bấm Enter
để thực thi.
Trên cùng bên trái: là cửa sổ biên tập, hay editor window. Bạn có thể biên tập và lưu lại các mã R tại đây.
Trên cùng bên phải
Dưới cùng bên phải
Các tài liệu hỗ trợ về RStudio có thể tham khảo tại http://www.rstudio.com/ide/docs/. Cụ thể hơn:
Giữ tất cả các file liên quan đến một dự án được tổ chức cùng nhau: dữ liệu nhập, mã R, kết quả phân tích, các hình ảnh…
Xem hướng dẫn quản lý dự án trên RStudio.
Bạn có thể sử dụng các dự án RStudio cho các bài tập và báo cáo cuối kì. Để tạo một dự án RStudio sử dụng cho các bài tập như sau:
Bạn sẽ sử dụng R Markdown để hoàn thành các bài tập về nhà. Đầu tiên, để tạo một tài liệu R Markdown, bạn thực hiện như sau:
Ctrl-S.Bạn có thể tra cứu nhanh các tài liệu về R Markdown tại: http://rmarkdown.rstudio.com/.
Đơn giản nhất, bạn có thể sử dụng R như là một bảng tính để thực hiện các phép toán đại số cơ bản như: cộng, trừ, nhân hoặc chia:
2 + 3
2 - 3
2 * 3
2 / 3Phép toán lấy mũ với ^, ví dụ \(4^2\) bằng
4 ^ 2R bao gồm rất nhiều hàm toán học khác, ví dụ, hàm lấy căn bậc hai là
sqrt \(\sqrt{2}\),
sqrt(2)Bạn có thể kết hợp các phép tính hoặc hàm lại với nhau
(2 * 4 + 3 ) / 10
sqrt(2 * 2)Trên R, bạn có thể lưu các kết quả tính toán vào các đối tượng để sử
dụng sau này. Điều này được thực hiện bằng cách sử dụng phép gán
<-.
Ví dụ, câu lệnh bên dưới sẽ lưu kết quả của 2 + 2 vào một đối tượng
tên add22
add22 <- 2 + 2Dễ thấy rằng add22 là bằng 4 4
add22Và bây giờ bạn có thể sử dụng lại đối tượng add22 trong các phép tính khác,
add22 + 3
ad22 / 2 * 8 + add22Bạn có thể sử dụng kí hiệu = thay cho kí hiệu
<- để thực hiện phép gán. Có một vài lý do kỹ thuật để
sử dụng <- thay vì =, nhưng lý do chính là
sự rõ ràng trong các chương trình R hiện đại.
Bất kì đoạn mã R nào theo sau bởi kí hiệu (#) đều không
được thực hiện. Những đoạn này được gọi là các chú thích. Bạn nên sử
dụng chú thích để gợi ý và giải thích cho đoạn mã.
#thisisacomment Và ở đây, những gì sau dấu # đầu tiên là được thực
hiện,
#this is still a comment
2 + 2 # this is also a commentKiểm tra: Kết quả của đoạn mã bên dưới?
5 * 4 # + 3 # - 8Trong xử lý dữ liệu, các dữ liệu trống (missing data) là khá phổ biến và đặc biệt quan trọng
foo <- c(1, 2, NA, 3, 4)Hàm na.omit rất hữu ích để loại bỏ bất cứ dòng (quan
sát) nào trong tập dữ liệu có giá trị trống trong bất kì cột
(biến) nào.
Ví dụ:
dfrm <- data.frame(x = c(NA, NA, 4, 3),
y = c(NA, NA, 7, 8)
)
dfrm
na.omit(dfrm)Xử lý dữ liệu NA’s
2 + NA là?mean(foo) là?mean để xem cách hàm xử lý các giá
trị trống.median(foo) như thế nào?foo > 2 là TRUE hay là
FALSE?is.na(foo) và
! is.na(foo) ?foo[! is.na(foo)] là?dfrm2 <- data.frame(x = c(NA, 2, NA, 4), y = c(NA, NA, 7, 8))
dfrm2
na.omit(dfrm2)Phần còn lại của bài học này sẽ sử dụng dữ liệu về GDP bình quân đầu người và tỉ lệ sinh từ bộ dữ liệu Gapminder.
Tải dữ liệu về dưới dạng (“CSV”) tại đây.
Sau đó sử dụng hàm read.csv để đọc file csv vừa tải
gapminder <- read.csv("gapminder.csv", stringsAsFactors = FALSE)Điều này sẽ tạo ra một data frame.
Một data frame là một kiểu đối tượng trên R. Nó có ý nghĩa tương tự như một tập dữ liệu hoặc một spreadsheet — với các dòng là các quan sát và các cột là các biến.
Xem nhanh dữ liệu
gapminderCó rất nhiều thông tin ở đây. Bằng cách nào bạn sẽ có một bức tranh tổng thể về bộ dữ liệu?
dim(gapminder)
names(gapminder)
head(gapminder)
tail(gapminder)
summary(gapminder)dim() cho biết các chiều của dữ liệu, gồm số dòng, số
cộtnames() hiển thị tên các cộthead() hiển thị một số quan sát đầu tiênsummary() tính toán các thống kê mô tả cho tất cả các
biến trong tập dữ liệuBạn có thể trích các biến riêng rẽ và thực hiện các thao tác dữ liệu
trên chúng. Để trích một biến từ một data frame, bạn sử dụng toán tử
trích với dấu ($) như sau:
gapminder$lifeExpBạn có thể thực hiện các thao tác dữ liệu cụ thể trên b iến này như:
mean(gapminder$lifeExp)
median(gapminder$lifeExp)
sd(gapminder$lifeExp)
min(gapminder$lifeExp)
max(gapminder$lifeExp)
quantile(gapminder$lifeExp)length() tính toán độ dài của một véc tơ.unique() trả về số giá trị riêng biệt trong một vec
tơ.Chú thích:
Dữ liệu từ gói gapminder.
Một số đoạn mã và dữ liệu được sử dụng từ Jenny Bryant, R basics, workspace and working directory, RStudio projects
Nội dung được phát hành theo điều kiện Creative Commons Attribution-ShareAlike 3.0 Unported.