Redian新闻
>
使用 R 语言构建一个可交互的 Web 应用 | Linux 中国

使用 R 语言构建一个可交互的 Web 应用 | Linux 中国

科技
 
导读:本文介绍如何使用 R 语言中的 Shiny 包开发交互式 Web 应用程序,R 语言是一种流行的数据科学编程语言。
本文字数:4298,阅读时长大约:5分钟

数据分析已成为企业的当务之急,并且对具有用户友好界面的数据驱动应用程序有巨大的需求。本文介绍如何使用 R 语言中的 Shiny 包开发交互式 Web 应用程序,R 语言是一种流行的数据科学编程语言。

如今,世界各地几乎所有企业都以某种形式依赖于数据。数据科学通过使用数据驱动的应用程序帮助许多企业实现转型,无论是在金融、银行、零售、物流、电子商务、运输、航空还是任何其他领域。

高性能计算机和低成本存储使我们现在能够在几分钟内预测结果,而不是像以前一样以前需要花费很多时间。数据科学家着眼于未来,正在开发具有高性能和多维可视化的便捷应用。这一切都始于大数据,它由三个组成部分组成:数量、多样性和速度。算法和模型都是根据这些数据提供的。机器学习和人工智能领域最前沿的数据科学家正在创建能够自我改进、检测错误并从中学习的模型。

在数据科学领域,统计和计算用于将数据转化为有用的信息,通常称为数据驱动科学。数据科学是来自各个领域的方法的综合,用于收集、分析和解释数据,以形成新的见解并做出选择。构成数据科学的技术学科包括统计学、概率、数学、机器学习、商业智能和一些编程。

数据科学可以应用于各个领域(图 1)。对大型、复杂数据集的分析是数据科学的重点。它帮助我们创建了一个以全新方式看待数据的新宇宙。亚马逊、谷歌和 Facebook 等科技巨头利用数据科学原理进行商业智能和商业决策。

Figure 1 Key applications-and use cases of data science

R 语言:为数据科学量身打造的语言

由于海量的可用信息,我们迫切需要数据分析以得到新的见解,在多种技术的帮助下,原始数据转化为成品数据产品。在数据研究、处理、转换和可视化方面,没有比 R 语言更好的工具了。

R 语言用于数据科学的主要功能包括:

◈ 数据预处理
◈ 社交媒体数据获取和分析
◈ 对数据结构的各种操作
◈ 提取、转换、加载(ETL)
◈ 连接到各种数据库,包括 SQL 和电子表格
◈ 与 NoSQL 数据库交互
◈ 使用模型进行训练和预测
◈ 机器学习模型
◈ 聚类
◈ 傅里叶变换
◈ 网页抓取

R 语言是一种强大的编程语言,常用于统计计算和数据分析。有关优化 R 语言用户界面的努力由来已久。从简单的文本编辑器到更现代的交互式 R Studio 和 Jupyter Notebooks,世界各地的多个数据科学小组都在关注 R 语言的发展。

只有全世界 R 用户的贡献才使这一切成为可能。R 语言中包含的强大软件包使其日益强大。许多开源软件包使处理大型数据集和可视化数据变得更加容易和高效。

使用 Shiny 在 R 语言中开发交互式 Web 应用

你可以使用 Shiny 包在 R 语言中构建交互式 Web 应用程序。应用程序可以托管在网站上、嵌入 R Markdown 文档中,或用于开发控制面板板和可视化。CSS 主题、HTML 小部件和 JavaScript 操作都可以用于进一步自定义你的 Shiny 应用程序。

Shiny 是一款 R 语言工具,它可以轻松创建交互式的 Web 应用程序。它允许你将你的 R 代码扩展到 Web 上,从而使更多的人能够使用它,从中获益。

除了 Shiny 内置的功能外,还有许多第三方扩展包可用,例如 shinythemes、shinydashboard 和 shinyjs。

使用 Shiny 可以开发各种应用程序。以下是其中一些:

◈ 基于 Web 应用的机器学习
◈ 具有动态控件的 Web 应用程序
◈ 数据驱动的仪表盘
◈ 多重数据集的交互式应用
◈ 实时数据可视化面板
◈ 数据收集表单

Shiny Web 应用程序可以分为以下几类:

◈ 用户接口
◈ 服务功能逻辑
◈ Shiny 应用逻辑

获取更深理解,请访问以下网站 https://shiny.rstudio.com/gallery/ 。

其中某个用 Shiny 开发的应用如图 2(https://shiny.rstudio.com/gallery/radiant.html )。🔗 shiny.rstudio.com

Figure 2: Shiny based app

销售仪表盘的生成

下面是一个与销售仪表盘相关的 Web 应用程序的代码片段。该仪表板具有多个控件和用户界面模块,用于查看数据。

首先,安装 Shiny 包,然后在代码中调用它,以便将输出呈现为 Web 页面的形式。

  1. library(shiny)
  2. library(dplyr)
  3. sales <- vroom::vroom(“salesdata.csv”, na = “”)
  4. ui <- fluidPage(
  5. titlePanel(“Dashboard for Sales Data”),
  6. sidebarLayout(
  7. sidebarPanel(
  8. selectInput(“territories”, territories”, choices = unique(sales$territories)),
  9. selectInput(“Customers”, Customer”, choices = NULL),
  10. selectInput(“orders”, Order number”, choices = NULL, size = 5, selectize = FALSE),
  11. ),
  12. mainPanel(
  13. uiOutput(“customer”),
  14. tableOutput(“data”)
  15. )
  16. )
  17. )
  18. server <- function(input, output, session) {
  19. territories <- reactive({
  20. req(input$territories)
  21. filter(sales, territories == input$territories)
  22. })
  23. customer <- reactive({
  24. req(input$Customers)
  25. filter(territories(), Customers == input$Customers)
  26. })
  27. output$customer <- renderUI({
  28. row <- customer()[1, ]
  29. tags$div(
  30. class = well”,
  31. tags$p(tags$strong(“Name: “), row$customers),
  32. tags$p(tags$strong(“Phone: “), row$contact),
  33. tags$p(tags$strong(“Contact: “), row$fname, “, row$lname)
  34. )
  35. })
  36. order <- reactive({
  37. req(input$order)
  38. customer() %>%
  39. filter(ORDER == input$order) %>%
  40. arrange(OLNUMBER) %>%
  41. select(pline, qty, price, sales, status)
  42. })
  43. output$data <- renderTable(order())
  44. observeEvent(territories(), {
  45. updateSelectInput(session, Customers”, choices = unique(territories()$Customers), selected = character())
  46. })
  47. observeEvent(customer(), {
  48. updateSelectInput(session, order”, choices = unique(customer()$order))
  49. })
  50. }
  51. shinyApp(ui, server)

运行 Shiny 应用程序的代码后,生成了图 3 所示的输出,可以在任何 Web 浏览器上查看。销售仪表盘具有多个控件,并且具有不同的用户界面模块,非常互动。

Figure 3: Sales dashboard with multiple controls

通过使用 Shiny Cloud,可以将这个应用程序部署和托管在云上,以便随时随地在互联网上使用。

Figure 4: Cloud for hosting and deployment of Shiny app

Shiny Cloud 的免费版本允许在 25 个活动小时内部署五个应用程序。研究人员和数据科学家可以使用 R 的 Shiny 库开发基于实时数据驱动的用户友好应用程序。这个库也可以用于在 Web 平台上部署他们的机器学习应用程序。

(题图:MJ/1a76ad20-e56d-480b-b28b-8cf74d2230a1)


via: https://www.opensourceforu.com/2022/10/using-r-for-building-an-interactive-web-app/

作者:Dr Kumar Gaurav 选题:lkxed 译者:Charonxin 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者 :Ye Tianxin
🌟
翻译: 1.0 篇
|
贡献: 2 天
2023-09-13
2023-09-14
https://linux.cn/lctt/Charonxin
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
宾州长木公园,天天好心情时尚秀场与追梦女子朱老四你好,我是筚(bì)篥( lì)!谷歌最新研究:可交互式动态图片生成,细节逼真!在 Linux 中使用 cat 命令 | Linux 中国在 Arch Linux 上安装和使用 Yay | Linux 中国那一刻Linux 游戏的下一个秘密武器:Bottles Next | Linux 中国Linux 上的最佳白板应用程序 | Linux 中国Overskride:刚刚出现的一款有趣的 Linux 蓝牙应用! | Linux 中国开源朗读者 | Linux 只是一个内核:这是什么意思? | Linux 中国5 个专注于隐私保护的 Linux 发行版 | Linux 中国在 Linux 中使用 cp 命令 | Linux 中国Fedora Linux Flatpak 八月推荐应用 | Linux 中国在 Linux 文件系统中使用 attr 添加扩展属性 | Linux 中国【搞事】来ANU,怎能不加入社团一起搞事情?没有?那就自己建一个!还可以获得ANUSA活动资金赞助哦~Fedora Linux 的家族(一):官方版本 | Linux 中国Linux Lite 6.6 发布:更新了欢迎应用和图标主题 | Linux 中国从零开始,运用 Ruby 语言创建一个 DNS 查询 | Linux 中国美国移民,EB1、EB2、EB3、EB4、EB5到底都是什么?Fedora Linux Flatpak 九月推荐应用 | Linux 中国你的旧电脑是 “过时” 了,还是使用 Linux 的机会? | Linux 中国Arch Linux 下全面使用 Wayland 的配置指南 | Linux 中国震撼!人机交互的飞机杯,实时直连3D大作女角色,还有体位识别?!Fedora Linux 的家族(二):定制版 | Linux 中国终端基础:在 Linux 中复制文件和目录 | Linux 中国任务中心:一款流畅的 Linux 系统监控应用 | Linux 中国使用 Btrfs 快照方便升级 Fedora Linux 且易于回退 | Linux 中国人去楼不空10 月份在 Fedora Linux 上值得尝试的酷炫 Flatpak应用 | Linux 中国如何制作一个 Linux Mint 立付 USB | Linux 中国如何在 Linux 主机和 KVM 中的 Windows 客户机之间共享文件夹 | Linux 中国Linux 中的 ls 命令使用教程 | Linux 中国Linux Shell 介绍:Bash、Zsh 和 Fish | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。