R Shiny 教程:如何在 R 中製作交互式 Web 應用程序
已發表: 2020-03-16目錄
介紹
在這個現代科技時代,我們所有人都可以使用各種應用程序——從跟踪我們的健康水平、睡眠到為我們提供有關股市的最新信息。 Robinhood、Google Fit 和 Workit 等應用程序似乎非常有用,因為它們使用實時數據和統計數據。 由於 R 是統計計算和編程領域的領跑者,因此開發人員需要一個系統來利用其強大的功能來構建應用程序。 了解有關 R 編程的更多信息。
這就是 R Shiny 拯救世界的地方。 在這個R Shiny 教程中,您將了解基礎知識。
什麼是 R 閃亮?
Shiny 是一個 R 包,用於在 R 中構建交互式 Web 應用程序。 使用它,您可以使用原生 HTML 和 CSS 代碼以及 R Shiny 代碼創建 Web 應用程序。 您可以在網站上構建獨立的 Web 應用程序,使數據可視化變得容易。 這些通過 R Shiny 製作的應用程序可以無縫顯示 R 對象,例如表格和繪圖。
讓我們看一下 R Shiny 的一些特性:
- 使用更少的代碼行構建 Web 應用程序,無需 JavaScript。
- 這些應用程序是實時的,用戶可以像電子表格一樣訪問。 如果用戶改變輸入,輸出可能會實時改變。
- 對 Web 工具知之甚少的開發人員也可以使用 R Shiny 構建應用程序。
- 您可以獲得內置小部件來顯示表格、R 對象的輸出和繪圖。
- 您可以使用此包將實時可視化和報告添加到 Web 應用程序。
- 用戶界面可以用 R 編碼,也可以使用 HTML、CSS 或 JavaScript 編寫。
- 默認用戶界面是使用 Bootstrap 構建的。
- 它帶有一個WebSocket 包,可以在 Web 服務器和 R 之間實現快速通信。
閱讀:R 中的決策樹
R Shiny 應用程序的組件
一個閃亮的應用程序有兩個主要組件——一個用戶界面對象和一個服務器功能。 這些是傳遞給shinyApp 方法的參數。 此方法使用參數創建應用程序對象。
從世界頂尖大學學習數據科學。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
另請閱讀:R中的KNN算法
讓我們詳細了解R Shiny 應用程序的基本部分:
用戶界面功能
此函數定義 Web 應用程序的外觀。 它通過從用戶獲取輸入並將其顯示在屏幕上來使應用程序具有交互性。 HTML 和 CSS 標籤可用於使應用程序看起來更好。 因此,在構建 ui.R 文件時,您會創建一個帶有 R 函數的 HTML 文件。
如果您在 R 控制台中鍵入fluidPage() ,您將看到該方法返回一個標記 <div class=”container-fluid”></div>。
不同的輸入函數是:
- selectInput () - 此方法用於創建一個下拉 HTML,它有各種可供選擇的選項。
- numericInput () - 此方法創建一個輸入區域,用於編寫文本或數字。
- radioButtons () – 這為用戶提供了單選按鈕來選擇輸入。
佈局方法
Bootstrap 中可用的各種佈局功能由 R Shiny 實現。 組件是:
面板
這些方法將元素組合到一個面板中。 這些包括:
- 絕對面板()
- 輸入面板()
- 條件面板()
- 標題面板()
- 固定面板()
佈局功能
這些為特定佈局組織面板。 這些包括:
- 流體行()
- 垂直佈局()
- 流佈局()
- 拆分佈局()
- 側邊欄佈局()
輸出方法
這些方法用於顯示 R 輸出組件圖像、表格和繪圖。 他們是:

- tableOutput() - 此方法用於顯示 R 表
- plotOutput() - 此方法用於顯示 R 繪圖對象
服務器功能
在您創建了應用程序的外觀和從用戶那裡獲取輸入值的方法之後,就該設置服務器了。 服務器函數可幫助您為 Shiny 應用程序編寫服務器端代碼。 您可以創建將用戶輸入映射到相應輸出的函數。 加載應用程序時,Web 瀏覽器會調用此函數。
它接受輸入和輸出參數,並忽略返回值。 此方法還採用可選的會話參數。
R Shiny 教程:如何開始使用 R Shiny?
開始使用 R Shiny 包的步驟如下:
- 轉到 R 控制台並輸入命令 - install.packages(“shiny”)
- 該軟件包附帶 11 個內置應用程序示例,供您了解 Shiny 的工作原理
您可以從Hello Shiny 示例開始了解基本結構。 鍵入此代碼以運行 Hello Shiny:
圖書館(閃亮)
運行示例(“01_hello”)
創建一個新的 Shiny 應用程序的步驟是:
- 打開RStudio並轉到文件選項
- 在目錄中選擇 New Project 並單擊“Shiny Web”應用程序
- 您將獲得一個直方圖和一個滑塊來測試輸出相對於輸入的變化
- 您將獲得兩個腳本 ui.R 和 server.R 用於編碼和自定義應用程序
Shiny 應用程序開發技巧
- 在將應用程序發送到生產環境之前,在瀏覽器中測試應用程序以查看它的外觀
- 在調試應用程序時運行整個腳本
- 注意逗號等常見錯誤
結論
如果您想了解數據科學,請查看我們的數據科學執行 PG 計劃,該計劃專為在職專業人士創建,提供 10 多個案例研究和項目、實用的實踐研討會、行業專家指導、一對一輔導擁有行業導師,400 多個小時的學習和頂級公司的工作協助。
Shiny 最好的部分是您無需了解 HTML、CSS 或 JavaScript 即可使用它。 此外,您可以構建應用程序並將其部署在 shinyapps.io 的免費版本上。 開始使用時,請隨身攜帶此R Shiny 教程。 每個數據科學家都需要藉助某些工具將數據中的見解呈現在公眾面前。 Shiny 是 R 中的一個包,用於開發交互式 Web 應用程序。 您有很多選項可以通過文本、表格、可視化或交互式圖表來傳達您的結果。 如果您了解 R 編程,您可以輕鬆開發應用程序,因為 Shiny 非常易於使用。 內置功能可輕鬆與朋友和同事分享您的工作。 Shiny 應用程序的設計非常驚人。 即使您正在查看默認顯示,您也會發現它非常直觀和優雅。 讓我們藉助一個天氣應用程序示例更好地理解這一點。 每當用戶重新加載頁面甚至更改頁面上的一個小輸入時,應用程序都必須藉助 JS 更新整個頁面。 這將為服務器端增加大量負載以處理更新。 Shiny 框架是 R 中可用的一個包,可用於構建交互式 Web 應用程序。 該軟件包非常棒,因為它允許您基於可用的數據集創建高效的可視化和報告。 除了使用 Shiny 元素之外,您還可以使用 HTML 元素來自定義應用程序內容。 R Shiny 有什麼好處?
發現 Shiny 與傳統應用程序有何不同?
另一方面,Shiny 將隔離或重新加載減少服務器負載的應用程序元素。 該結構將在理解和調試代碼方面發揮非常重要的作用。 發現與傳統應用程序相比,使用 Shiny 應用程序滾動瀏覽 Web 應用程序有點困難。 R Shiny難學嗎?
儘管 Shiny 是一個非常強大的工具,但如果您了解 R 編程,您會發現它很容易學習。如果您正在考慮在您的作品集中添加一些創意,強烈建議您學習 R Shiny。