R Shiny Tutorial: Tất cả những gì bạn cần biết



Hướng dẫn R Shiny này sẽ cung cấp cho bạn kiến ​​thức chi tiết và toàn diện về R Shiny cũng như cách tạo Ứng dụng web tương tác.

Với sự phát triển của công nghệ, các công cụ và khuôn khổ mới hơn đã xuất hiện để xây dựng các ứng dụng web hiển thị số liệu thống kê, bản đồ và biểu đồ theo thời gian thực. Vì các chức năng này yêu cầu xử lý và đồng bộ hóa cao, các ngôn ngữ lập trình được sử dụng để giảm thời gian tải của máy chủ. Trong hướng dẫn R Shiny này, tôi sẽ giải thích cách sử dụng R tốt nhất trên các ứng dụng web động.

Chúng tôi sẽ bao gồm và hiểu các chủ đề sau:





R Shiny là gì?

Shiny là một gói R cho phép người dùng xây dựng các ứng dụng web tương tác. Công cụ này tạo một ứng dụng web tương đương HTML từ mã Shiny. Chúng tôi tích hợp mã HTML và CSS gốc với các chức năng R Shiny để làm cho ứng dụng trở nên khả thi. Shiny kết hợp sức mạnh tính toán của R với khả năng tương tác của web hiện đại.Shiny tạo các ứng dụng web được triển khai trên web bằng máy chủ của bạn hoặc các dịch vụ lưu trữ của R Shiny.

Đặc điểm của R Shiny:

  • Tạo ứng dụng dễ dàng với kiến ​​thức cơ bản hoặc không có kiến ​​thức về các công cụ web
  • Tích hợp Shiny với các công cụ web gốc để cải thiện tính linh hoạt và năng suất
  • Chức năng kết xuất và I / O được tạo sẵn
  • Dễ dàng hiển thị nội dung ứng dụng mà không cần tải lại nhiều lần
  • Tính năng thêm đầu ra được tính toán (hoặc xử lý) từ tập lệnh R
  • Thêm báo cáo trực tiếp và hình ảnh hóa.

Điều đó đưa chúng ta đến câu hỏi:



Shiny khác với các ứng dụng truyền thống như thế nào?

Cho phép chúng tôi lấy một ví dụ về ứng dụng thời tiết, bất cứ khi nào người dùng làm mới / tải trang hoặc thay đổi bất kỳ đầu vào nào, nó sẽ cập nhật toàn bộ hoặc một phần của trang bằng JS. Điều này bổ sung tải cho phía máy chủ để xử lý. Shiny cho phép người dùng cô lập hoặc hiển thị (hoặc tải lại) các phần tử trong ứng dụng để giảm tải máy chủ. Cuộn qua các trang rất dễ dàng trong các ứng dụng web truyền thống nhưng lại khó khăn với các ứng dụng Shiny. Cấu trúc của mã đóng vai trò chính trong việc hiểu và gỡ lỗi mã. Tính năng này rất quan trọng đối với các ứng dụng sáng bóng so với các ứng dụng khác.

Hãy chuyển sang chủ đề tiếp theo trong hướng dẫn R Shiny, cài đặt gói R Shiny.

Cài đặt R Shiny

Cài đặt Shiny giống như cài đặt bất kỳ gói nào khác trong R. Đi tới Bảng điều khiển R và chạy lệnh dưới đây để cài đặt gói Shiny.



install.packages ('sáng bóng')

Cài đặt R Shiny - Hướng dẫn sáng bóng R - Edureka

Sau khi bạn đã cài đặt, hãy tải gói Shiny để tạo các ứng dụng Shiny.

lớp ẩn danh trong java là gì
thư viện (sáng bóng)

Trước khi chúng ta tiến xa hơn trong hướng dẫn R sáng bóng này, hãy cùng xem và hiểu cấu trúc của một ứng dụng Sáng bóng.

Cấu trúc của một ứng dụng Shiny

Shiny bao gồm 3 thành phần:

  1. Giao diện người dùng
  2. Người phục vụ
  3. ShinyApp

một.Chức năng giao diện người dùng

Giao diện người dùng Chức năng (UI) xác định bố cục và giao diện của ứng dụng. Bạn có thể thêm các thẻ CSS và HTML trong ứng dụng để làm cho ứng dụng dễ nhìn hơn. Hàm chứa tất cả các đầu vào và đầu ra được hiển thị trong ứng dụng. Mỗi phần tử (bộ phận hoặc tab hoặc menu) bên trong ứng dụng được xác định bằng các hàm. Chúng được truy cập bằng cách sử dụng một id duy nhất, như các phần tử HTML.Hãy cùng tìm hiểu thêm về cáccác chức năng được sử dụng trong ứng dụng.

Các chức năng bố cục sáng bóng

  • headerPanel ()thêm một tiêu đề vào ứng dụng. titlePanel () xác định tiêu đề phụ của ứng dụng. Xem hình ảnh dưới đây để hiểu rõ hơn về headerPaneltitlePanel .
  • SidebarLayout ()xác định bố cục để giữ sidebarPanel bảng điều khiển chính các yếu tố. Bố cục chia màn hình ứng dụng thành bảng điều khiển thanh bên và bảng điều khiển chính. Ví dụ, trong hình ảnh dưới đây, hình chữ nhật màu đỏ là bảng điều khiển chính diện tích và diện tích hình chữ nhật màu đen theo chiều dọc là sidebarPanel khu vực.

  • wellPanel ()định nghĩa một vùng chứa chứa nhiều đối tượng các đối tượng đầu vào / đầu ra của ứng dụng trong cùng một lưới.
  • tabsetPanel ()tạo một vùng chứa để chứa các tab. tabPanel () thêm tab vào ứng dụng bằng cách xác định các thành phần và thành phần tab. Trong hình ảnh dưới đây, màu đenhình chữ nhật là tabsetPanel đối tượng và hình chữ nhật màu đỏ là tabPanel vật.
  • navlistPanel ()cung cấp một menu bên với các liên kết đến các bảng tab khác nhau tương tự như tabsetPanel () như danh sách Dọc ở bên trái màn hình. Trong hình ảnh dưới đây, hình chữ nhật màu đen là navlistPanel đối tượng và hình chữ nhật màu đỏ là tabPanel vật.

Cùng với các chức năng bố cục sáng bóng, bạn cũng có thể thêm CSS nội tuyến vào từng tiện ích con đầu vào trong ứng dụng.Ứng dụng Shiny kết hợp các tính năng của công nghệ web cùng với các tính năng và chức năng R sáng bóng để làm phong phú ứng dụng. Sử dụng các thẻ HTML trong ứng dụng Shiny bằng thẻ $.

Bố cục của bạn đã sẵn sàng, Đã đến lúc thêm tiện ích con vào ứng dụng. Shiny cung cấp các yếu tố đầu vào và đầu ra khác nhau của người dùng để người dùng tương tác. Hãy để chúng tôi thảo luận về một vài chức năng đầu vào và đầu ra.

Các chức năng đầu vào sáng bóng

Mỗi tiện ích con đầu vào có nhãn, Id, các tham số khác như lựa chọn, giá trị, đã chọn, tối thiểu, tối đa, v.v.

  • selectInput ()- tạo một phần tử HTML thả xuống.
selectInput ('select', h3 ('Select box'), selection = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), select = 1)

  • numericInput ()- khu vực đầu vào để nhập một số hoặc văn bản.
dateInput ('num', 'Date input', value = '2014-01-01') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', value = ' Nhập văn bản...')

  • radioButtons ()- tạo các nút radio để người dùng nhập liệu.
radioButtons ('radio', h3 ('Các nút radio'), choice = list ('Lựa chọn 1' = 1, 'Lựa chọn 2' = 2, 'Lựa chọn 3' = 3), đã chọn = 1)

Các chức năng đầu ra sáng bóng

Shiny cung cấp các chức năng đầu ra khác nhau hiển thị R các kết quả đầu ra như lô, hình ảnh, bảng, v.v. hiển thị tương ứng R vật.

  • plotOutput ()- hiển thị đối tượng R âm mưu.
plotOutput'top_batsman ')
  • tableOutput ()- hiển thị đầu ra dưới dạng bảng.
tableOutput'player_table ')

2. Chức năng Máy chủ

Người phục vụ chức năng dxác định logic phía máy chủ của ứng dụng Shiny. Nó liên quan đến việc tạo ra các chức năng và đầu ra sử dụng đầu vào để tạo ra nhiều loại đầu ra khác nhau. Mỗi ứng dụng khách (trình duyệt web) gọi chức năng máy chủ khi nó tải ứng dụng Shiny lần đầu tiên. Mỗi đầu ra lưu trữ giá trị trả về từ các hàm kết xuất.

Các hàm này nắm bắt một biểu thức R và thực hiện các phép tính và xử lý trước trên biểu thức. Sử dụng hàm render * tương ứng với đầu ra bạn đang xác định. Chúng tôi truy cập các vật dụng đầu vàosử dụng đầu vào $ [widget-id] . Các biến đầu vào này là các giá trị phản ứng. Bất kỳ biến trung gian nào được tạo bằng cách sử dụng các biến đầu vào cần phải được tạo ra phản ứng phản ứng ({}) . Truy cập các biến bằng cách sử dụng ().

kết xuất * Các hàm thực hiện tính toán bên trong hàm máy chủ và lưu trữ trong các biến đầu ra. Đầu ra cần được lưu với đầu ra $ [tên biến đầu ra] . Mỗi kết xuất * hàm nhận một đối số duy nhất, tức là một biểu thức R được bao quanh bởi dấu ngoặc nhọn, {}.

3. Chức năng ShinyApp

GlossApp ()chức năng là trái tim củaứng dụng gọi CỦ HÀNHngười phục vụ các chức năng để tạo một ứng dụng sáng bóng.

Hình ảnh dưới đây cho thấy đường viền của ứng dụng Shiny.

Hãy chuyển sang phân đoạn tiếp theo trong hướng dẫn R Shiny để tạo ứng dụng R Shiny đầu tiên.

Tạo một dự án web sáng bóng

Đi đến Tập tin và Tạo một Dự án mới trong bất kỳ thư mục nào -> Ứng dụng web sáng bóng -> [Tên của Thư mục ứng dụng sáng bóng]. Nhập tên của thư mục và nhấp vào đồng ý .

Mỗi dự án ứng dụng Shiny mới sẽ chứa một ví dụ biểu đồ để hiểu những điều cơ bản về một ứng dụng sáng bóng. Ứng dụng biểu đồ chứa một thanh trượt theo sau là biểu đồ cập nhật kết quả cho một thay đổi trong thanh trượt. Dưới đây là kết quả của ứng dụng biểu đồ.

Để chạy ứng dụng Shiny, hãy nhấp vào Chạy ứng dụng ở góc trên cùng bên phải của ngăn nguồn. Ứng dụng Shiny hiển thị tiện ích con trượt lấy số lượng thùng làm đầu vào và hiển thị biểu đồ theo đầu vào.

Bây giờ bạn đã hiểu cấu trúc và cách chạy một ứng dụng Shiny. Hãy tiếp tục tạo Ứng dụng Shiny đầu tiên của chúng tôi.

Tạo ứng dụng Shiny đầu tiên

Bạn có thể tạo một dự án mới hoặc tiếp tục trong cùng một thư mục làm việc. Trong hướng dẫn R Shiny này, chúng tôi sẽ tạo một ứng dụng Shiny đơn giản để hiển thị Thống kê IPL. Có thể tải xuống tập dữ liệu được sử dụng trong ứng dụng đây . Tập dữ liệu bao gồm 2 tệp, giao hàng.csv chứa các giao điểm cho mỗi quả bóng (vượt) người đánh bóng, người ném bóng, các chi tiết chạy và trận đấu.csv tệp chứa thông tin chi tiết về trận đấu như vị trí trận đấu, lượt tung, địa điểm và chi tiết trò chơi. Ứng dụng dưới đây yêu cầu kiến ​​thức cơ bản về dplyr để hiểu hướng dẫn dưới đây.

Làm theo các bước dưới đây để tạo ứng dụng sáng bóng đầu tiên của bạn.

Bước 1 : Tạo phác thảo của một ứng dụng Shiny.

Xóa mã hiện có ngoại trừ các định nghĩa hàm trong ứng dụng . R tập tin.

Bước 2 : Tải thư viện và dữ liệu.

Trong bước này, chúng tôi tải các gói và dữ liệu cần thiết. Sau đó, làm sạch và chuyển đổi dữ liệu trích xuất thành định dạng cần thiết. Thêm mã dưới đây trước CỦ HÀNHngười phục vụ chức năng.

Mã:

thư viện thư viện (sáng bóng) thư viện (ngăn nắp) # Đang tải tập dữ liệu --------------------------------------- ---------------- delivery = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringAsFactors = FALSE) match = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringAsFactors = FALSE) # Tập dữ liệu làm sạch --------------------------------------------- --------- tên (đối sánh) [1] = 'match_id' IPL = dplyr :: inner_join (đối sánh, giao hàng)

Giải trình :

2 dòng đầu tiên tải ngăn nắpSáng bóng gói hàng. 2 dòng tiếp theo tải các tập dữ liệu phân phối và đối sánh và lưu trữ trong các biếngiao hàngdiêm. 2 dòng cuối cùng cập nhật tên cột củadiêmtập dữ liệu để thực hiện một phép nối bên trong vớigiao hàngbàn. Chúng tôi lưu trữ kết quả tham gia trongIPLBiến đổi.

Bước 3 : Tạo bố cục của ứng dụng Shiny .

Như đã thảo luận trước đây, CỦ HÀNH chức năng xác định giao diện, tiện ích và đối tượng của ứng dụng trong ứng dụng Shiny.Hãy cùng thảo luận chi tiết.

củ hành<- fluidPage( headerPanel('IPL - Indian Premier League'), tabsetPanel( tabPanel(title = 'Season', mainPanel(width = 12,align = 'center', selectInput('season_year','Select Season',choices=unique(sort(matches$season, decreasing=TRUE)), selected = 2019), submitButton('Go'), tags$h3('Players table'), div(style = 'border:1px black solidwidth:50%',tableOutput('player_table')) )), tabPanel( title = 'Team Wins & Points', mainPanel(width = 12,align = 'center', tags$h3('Team Wins & Points'), div(style = 'float:leftwidth:36%',plotOutput('wins_bar_plot')), div(style = 'float:rightwidth:64%',plotOutput('points_bar_plot')) ) )))

Các CỦ HÀNH hàm chứa một headerPanel () hoặc là titlePanel () và tiếp theo là tabsetPanel để xác định nhiều tab trong ứng dụng. tabPanel () xác định các đối tượng tương ứng cho mỗi tab. Mỗi tabPanel () bao gồm tiêu đề và bảng điều khiển chính(). bảng điều khiển chính() tạo một vùng chứa có chiều rộng 12 tức là cửa sổ đầy đủ và căn chỉnh các đối tượng đầu vào và đầu ra ở trung tâm.

Giải trình

Ứng dụng bao gồm 2 tab: MùaĐội Thắng & Điểm.

Mùa tab bao gồm selectInput ( ) , nút gửi và một bảng. season_year được sử dụng để đọc dữ liệu đầu vào từ llà giá trị. tableOutput () hiển thị đầu ra bảng được tính trên chức năng máy chủ.Table player_table được hiển thị bên dưới nút được xác định trong chức năng máy chủ sẽ được thảo luận trong bước tiếp theo. Đội thắng & điểm tab hiển thị chiến thắng khôn ngoan của đội và điểm trong biểu đồ thanh tương ứng. plotOutput () hiển thị kết quả đầu ra trả về từ kết xuất * chức năng. Tất cả các chức năng đầu ra, đầu vào được đặt trong thẻ div để thêm kiểu nội tuyến.

Bây giờ chúng ta đã quen thuộc với hàm ui, hãy tiếp tục tìm hiểu và sử dụng hàm máy chủ trong hướng dẫn R Shiny của chúng tôi.

Bước 4: Thêm câu lệnh chức năng máy chủ

Các người phục vụ chức năng liên quan đến việc tạo ra các chức năng và outputs sử dụng đầu vào của người dùng để tạo ra nhiều loại đầu ra khác nhau. Cácchức năng máy chủ được giải thích từng bước dưới đây.

match_year = Reative ({trận đấu%>% bộ lọc (season == input $ season_year)}) playoff = react ({nth (sắp xếp (trận đấu_năm () $ match_id, giảm dần = TRUE), 4)}) trận đấu_played = phản ứng ({trận_ đấu_năm ()%>% bộ lọc (match_id% group_by (team1)%>% tổng hợp (count = n ())}) t2 = react ({trận_đấu ()%>% group_by (team2)%>% tổng kết (count = n ( ))}) wl = react ({match_played ()%>% filter (winner! = '')%>% group_by (winner)%>% Summary (no_of_wins = n ())}) wl1 = react ({trận đấu_played ( )%>% group_by (winner)%>% Summary (no_of_wins = n ())}) bị ràng buộc = react ({trận đấu_phát ()%>% bộ lọc (người chiến thắng == '')%>% select (team1, team2)} ) playertable = react ({data.frame (Team = t1 () $ team1, Played = t1 () $ count + t2 () $ count, Wins = wl () $ no_of_wins, Points = wl () $ no_of_wins * 2) })

Bộ lọc mã ở trên các trận đấu được chơi trước các trận đấu loại trực tiếp hàng năm và lưu trữ kết quả trong biến trận đấu.player_tablebảng chứa số liệu thống kê về trận đấu theo đội, tức là đã chơi, chiến thắng và điểm. Biếncác trận đấu đã chơi,player_table,t1,trói, v.v. đều là trung gian giá trị phản ứng . Các biến này cần được truy cập bằng cách sử dụng () như trong đoạn mã trên.player_tableđược hiển thị bằng cách sử dụng chức năng renderTable. Tiếp theo, tạo biến đầu ra để lưu trữ có thể phát.

output $ player_table = renderTable ({playertable ()})

Bây giờ, hãy tạo biểu đồ thanh để hiển thị chiến thắng và số điểm mà mỗi đội ghi được trong mùa giải. Đoạn mã dưới đây hiển thị biểu đồ thanh bằng ggplot. renderPlot () tìm nạp đối tượng ggplot và lưu trữ kết quả trong biếnwon_bar_plotMã ggplot rất dễ hiểu, nó liên quan đến đồ họa cơ bản và các chức năng ánh xạ để chỉnh sửa chú giải, nhãn và cốt truyện.

output $ won_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (winner, no_of_wins, fill = winner)) + geom_bar (stat = 'ID') + theme_classic () + xlab ('Nhóm') + ylab ('Số trận thắng') + chủ đề (axis.text.x = element_text (color = 'white'), legend.position = 'none', axis.title = element_text (size = 14), plot.background = element_rect (color = 'white')) + geom_text (aes (x = winner, (no_of_wins + 0.6), label = no_of_wins, size = 7))}) xuất ra $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Đội, Điểm, điền = Đội)) + geom_bar (stat = 'ID', size = 3) + theme_classic () + theme (axis.text.x = element_text (color = 'white'), legend.text = element_text ( size = 14), axis.title = element_text (size = 14)) + geom_text (aes (Nhóm, (Điểm + 1), label = Điểm, size = 7))})

Bước 5: Chạy ứng dụng Shiny.

Nhấp vào Chạy ứng dụng. Khi chạy thành công, ứng dụng Shiny của bạn sẽ giống như bên dưới. Mọi lỗi hoặc cảnh báoliên quan đến ứng dụng, nó sẽ hiển thị chúng trong R Console.

Tab1 - Phần

chuỗi java chia nhiều dấu phân cách

Tab2 - Đội thắng & điểm

Hãy xem làm thế nàođể thiết lậpTài khoản Shinyapps.io để triển khai các ứng dụng Sáng bóng của bạn.

Thiết lập tài khoản Shinyapps.io

Đi đến Shinyapps.io và đăng nhập bằng thông tin của bạn, sau đó đặt tên tài khoản duy nhất cho trang và lưu nó. Sau khi lưu thành công, bạn sẽ thấy quy trình chi tiết để triển khai ứng dụng từ R Console. Làm theo quy trình dưới đây để định cấu hình tài khoản của bạn trong Rstudio.

Bước 1. Cài đặt rsconnect

install.packages ('rsconnect')

Bước 2. Ủy quyền tài khoản

Các rsconnect gói phải được ủy quyền cho tài khoản của bạn bằng mã thông báo và bí mật. Để thực hiện việc này, hãy sao chép toàn bộ lệnh như được hiển thị bên dưới trong trang bảng điều khiển của bạn trong R bàn điều khiển. Khi bạn đã nhập lệnh thành công trong R, bây giờ tôi cho phép bạn triển khai các ứng dụng cho tài khoản Shinyapps.io của bạn.

rsconnect :: setAccountInfo (name = 'account name', token = 'token', secret = 'secret')

Bước 3. Triển khai ứng dụng

Sử dụng mã dưới đây để triển khai ứng dụng Sáng bóng.

thư viện (rsconnect) rsconnect :: deployApp ('path / to / your / app')

Sau khi thiết lập, bạn đã sẵn sàng triển khai các ứng dụng sáng bóng của mình.

Bây giờ bạn đã học cách tạo và chạy ứng dụng Shiny, hãy triển khai ứng dụng chúng tôi vừa tạo vào Shinyapps.io như đã giải thích ở trên hoặc nhấp vào công bố, hiện ở góc trên cùng bên phải của cửa sổ ứng dụng Shiny.

tôi hi vọngrằng hướng dẫn R Shiny này đã giúp bạn học cách tạo và chạy ứng dụng Shiny. Hãy vui vẻ khi tạo các ứng dụng web tương tác và đẹp mắt bằng R Shiny.

Nếu bạn muốn học Lập trình R và xây dựng một sự nghiệp đầy màu sắc trong Phân tích dữ liệu, hãy xem đi kèm với đào tạo trực tiếp do người hướng dẫn và trải nghiệm dự án thực tế. Khóa đào tạo này sẽ giúp bạn hiểu về phân tích dữ liệu và giúp bạn thành thạo chủ đề này.