5 lý do vì sao bạn nên bắt đầu học ngôn ngữ lập trình R ngay từ bây giờ

Linh Le

Nếu bạn đã sử dụng JavaScript hoặc các ngôn ngữ kịch bản khác, bạn cũng sẽ thích R. Ngôn ngữ có nguồn mở miễn phí này có đầy đủ các chức năng, với bề dày 25 năm lịch sử, vì vậy nếu chưa thử, thì đây là một thời điểm tốt để bạn bắt đầu. Dưới đây là 5 lý do giải thích tại sao bạn nên bắt đầu sử dụng R ngay hôm nay!

1. Nguồn tài liệu và hỗ trợ đầy đủ

Tài nguyên trực tuyến cho R — bao gồm các bảng tin — được hỗ trợ tốt và được ghi chép đầy đủ. Một số nhà phát triển R giỏi tham gia tích cực các thảo luận trực tuyến về các công cụ và các package mà họ thiết kế. Điều này rất quan trọng, vì lập trình R bao gồm rất nhiều community package, từ các gói được sử dụng để phân tích cú pháp các tệp dạng JSON và XML, thành các gói để giúp tạo các Mô hình tác động ngẫu nhiên (Random Effects regression model).

Chức năng của R đôi khi có thể là vô tận do sự tích cực đóng góp của cộng đồng các nhà phát triển R. Nguồn tài liệu tuyệt vời và sự tham gia của các nhà phát triển R giúp cho những người mới bắt đầu dễ tiếp cận với ngôn ngữ này hơn.

2. Giúp bạn thu hút hơn trong mắt nhà tuyển dụng

Các nhà tuyển dụng đánh giá cao những lập trình viên biết ngôn ngữ R và xem đây là ngôn ngữ đem lại nhiều lợi ích. Điều này đặc biệt đúng trong bất kỳ ngành nào phụ thuộc vào phân tích dữ liệu. Giá của các gói thống kê phổ biến, đặc biệt là ở cấp độ doanh nghiệp, là rất cao. Nhiều nhà tuyển dụng hiểu rằng nếu họ thuê những người có thể sử dụng ngôn ngữ R, họ có thể tiết kiệm hàng ngàn người khác bằng cách không phải mua gói thống kê độc quyền. Vì vậy, bạn còn chần chờ gì nữa mà không bắt đầu học ngay ngôn ngữ này. Có thể nó sẽ giúp bạn có được công việc như ý.

3. Thu thập, dọn dẹp và phân tích dữ liệu của bạn ở cùng một nơi

Bằng cách sử dụng ngôn ngữ R, bạn có thể thực hiện tất cả các công việc thu thập dữ liệu, dọn dẹp và phân tích ở cùng một nơi. Hãy cùng xem một ví dụ đơn giản như sau:

Listing 1 cho thấy một script tải các thư viện cần thiết. Các dòng từ 4 đến 14 thực hiện yêu cầu GET đến một trang web thống kê NFL và sau đó phân tích cú pháp phản hồi JSON. Sau khi thực hiện thêm một vài hình thức niceties, dữ liệu được nạp vào một dataframe và sẵn sàng để phân tích (dòng 15-16).

Listing 1. Một ví dụ đơn giản

library(httr)

library(xml2)

library(mongolite)

resp <- GET('http://www.nfl.com/stats/categorystats?tabSeq=

1&statisticPositionCategory=RUNNING_BACK&season=2016&seasonType=REG')

nfltext <- content(resp,as="text")

rad <- read_html(nfltext)

trs <- xml_find_all(rad, ".//tr")

colNames <- xml_text(xml_children(trs[1]),trim = T)

mat <- matrix(nrow = length(trs) - 1,ncol = length(colNames))

for(i in 2:length(trs)){
  
    child <- xml_children(trs[i])
  
    mat[i-1,]<- xml_text(child,trim=T)

}

df <- data.frame(mat)

colnames(df) <- colNames

 

Script sau sẽ thực hiện thêm một bước. Đoạn mã này tạo ra một cơ sở dữ liệu mới trong một cá thể Mongo cục bộ đang chạy và chèn dataframe có chứa các số liệu thống kê NFL mong muốn. Script sau đó xuất ra một số thông tin, xác minh rằng dữ liệu đã được đưa vào cơ sở dữ liệu đúng cách. Bất kỳ ngôn ngữ kịch bản nào cũng có thể thực hiện các tác vụ này, nhưng hãy xem cách mà ngôn ngữ R thực hiện điều đó gọn gàng và dễ dàng như thế nào.

 

running_backs = mongo(collection = "2016RunningBacks", db = "NFLPlayers")

running_backs$insert(df)

running_backs$count()

running_backs$iterate()$one()

 

Khi chuyển sang giai đoạn phân tích dữ liệu, bạn sẽ có nhiều công cụ cần thiết trong tay.

Script trong Listing 2 cho thấy một số phân tích dữ liệu trong môn thể thao bóng bầu dục.

Listing 2. Phân tích dữ liệu về bóng bầu dục

library(mongolite)

running_backs = mongo(collection = "2016RunningBacks", db = "NFLPlayers")

df <- running_backs$find(fields='{"_id":0,"Att":1,"Att/G":1,
                         
                            "Yds":1,"Yds/G":1,"TD":1,"1st":1,"FUM":1}')

df[1:7] <- apply(df[,1:7],1,function(x){gsub(",","",x)})

df[1:7] <- apply(df[,1:7],1,as.numeric)

nfl.pc <- prcomp(df,center = TRUE,scale. = TRUE)

print(nfl.pc)

summary(nfl.pc)

plot(nfl.pc, type = "l")

 

Ở đây bạn tải lại thư viện mongolite để lấy dữ liệu vừa được thêm vào cơ sở dữ liệu. Dữ liệu xuất hiện dưới dạng chuỗi, nhưng như bạn có thể thấy trong tập lệnh, hàm APPLY của R có thể nhanh chóng thực hiện các thay đổi quy mô lớn đối với các dataframe, chẳng hạn như thay đổi ký tự thành số. Phần còn lại của script thực hiện phân tích thành phần nguyên tắc cơ bản để xem cách các số liệu thống kê này có thể được tổng quát hóa hoặc kết hợp thành các chỉ mục, như trong Hình 1.

Sophisticated data analysis
Hình 1. Phân tích dữ liệu phức tạp

Đồ thị cho thấy rằng nhóm biến này dường như không có yếu tố hoặc chỉ có yếu tố cơ bản. Điều này chắc chắn không phải là một bước đột phá, nhưng đây là kiểu phân tích dữ liệu phức tạp ngay trong cùng một nơi mà dữ liệu được thu thập và dọn dẹp. Nếu học ngôn ngữ lập trình R, bạn sẽ có rất nhiều lợi thế xử lý trong cả phân tích dữ liệu và scripting chung.

4. Tận dụng tiềm năng hiển thị dữ liệu tuyệt vời của R

Các công cụ trực quan hóa dữ liệu của R rất tuyệt vời. Script trong Listing 3 thực hiện một số phân tích dữ liệu về dữ liệu bóng bầu dục.

Listing 3. Phân tích dữ liệu bóng bầu dục khác

library(ggplot2)

lmod <- lm(`Yds/G`~`FUM`,data=df)

par(mfrow=c(2,2))

plot(lmod)

par(mfrow=c(1,1)

ggplot(df,aes(x=`Yds/G`,y=`TD`))+
  
  geom_point(aes(size = `1st`))+
  
  geom_smooth()+
  
  labs(x = "Yards per Game",y ="Touchdowns",title = "Yards per Game

and Touchdowns")

 

Đầu tiên, một mô hình tuyến tính được lưu trữ trong đối tượng lmod. Mô hình này đo lường mối quan hệ giữa các sân cho mỗi game và số lượng lỗi vụng về của trung vệ trong tập dữ liệu. Để có được các ô chẩn đoán từ mô hình tuyến tính này, chỉ cần gọi hàm plot trên đối tượng lmod. Đây là trình tiết kiệm thời gian rất lớn khi bạn chỉ quan tâm đến việc xem liệu một mô hình tuyến tính có phù hợp với dữ liệu bạn đang làm việc hay không.

Các lô được tạo ra bởi hàm này được thể hiện trong Hình 2.

Diagnostic plots
Figure 2. Diagnostic plots

Các lệnh gọi chức năng tiếp theo là của ggplot. Gói ggplot2 tạo ra việc hiển thị trực quan dữ liệu chất lượng một cách dễ dàng. Plot được tạo ra bởi các lệnh gọi chức năng được thể hiện trong hình 3.

ggplot2 graph
Figure 3. – A ggplot2 result

Đồ thị này hiển thị tốt mối quan hệ phức tạp giữa sân cho mỗi game và những lần tiếp đất, cũng như những lần nhảy lên xuống đầu tiên. Đây có thể không phải là một phát hiện quá vĩ đại, nhưng chất lượng của các đồ thị được ggplot tạo ra là tuyệt vời.

5. Tăng tốc nhanh chóng

R rất dễ học. Có sẵn rất nhiều trợ giúp từ cộng đồng trực tuyến và thậm chí cả các công ty cung cấp các khóa học trực tuyến chất lượng cao. Một lý do giúp ngôn ngữ R rất trực quan là do nó không được tạo ra với mục đích dành cho các nhà khoa học máy tính. Nó được tạo ra cho các nhà toán học, vì vậy cách thức tổ chức ngôn ngữ có thể dễ dàng nắm bắt hơn đối với một số người không phải dân lập trình chuyên nghiệp.

Script trong Listing 4 cho thấy sự đơn giản của ngôn ngữ, với các kết quả được hiển thị trong Hình 4.

Script trong Listing 4 tạo ra ba mẫu ngẫu nhiên và sau đó tạo một biểu đồ thanh từ dữ liệu. Hàm mẫu được gọi là “mẫu” vì bạn đang tạo mẫu và xác suất được đặt bằng prob option. data.framethể hiện cách giữ dữ liệu.

Listing 4. Tính đơn giản của R

library(ggplot2)

ydata <- sample(c(1:100),10000,replace=T)

xdata <- sample(c("Erik","Cooper","Stewart"),10000,replace = T)

zdata <- sample(c("Red","Blue","Green","Yellow","Orange"),10000,replace = 
T,prob=c(0.4,0.2,0.25,0.1,0.05))

df <- data.frame(Marbles=ydata,Person=xdata,Color=zdata)

ggplot(df,aes(x=Person,fill=Color))+
  
    geom_bar(position="dodge")+
  
    scale_fill_manual(values=c("light blue","light 
green","#ff8000","#ff3232","#ffff66"))+
  
    labs(fill="Ball Color")

Biểu đồ hoạt động bằng cách đặt cơ sở và sau đó thêm các phần tử ở trên cùng. Những yếu tố này có tên rất trực quan như geom_bar đối với biểu đồ thanh và kết quả nhìn khá ổn so với công sức mà bạn phải bỏ ra để tạo nó.

balls
Hình 4. 3 mẫu ngẫu nhiên

Nói tóm lại, không có ngôn ngữ nào là dễ, nhưng R là sự lựa chọn dễ dàng nhất cho bạn.

Tổng kết

Tài liệu hữu ích và các công cụ trực quan hóa dữ liệu mạnh mẽ như mô tả trên đây chỉ là một số lý do tuyệt vời tại sao bạn nên sử dụng R. Chúng ta có quyền mong đợi nhiều cải tiến và nhiều công cụ mới hơn từ cộng đồng R đang hoạt động trong tương lai. Bạn đã sẵn sàng chưa? Còn chờ gì nữa mà không bắt tay vào khám phá ngôn ngữ lập trình R tuyệt vời này!

Chia sẻ bài viết ngay

Nguồn bài viết : https://developer.ibm.com