如何使用 Shiny 在 R 中编写 Web 应用程序

291 位读者喜欢这个。
One lightbulb lit out of several

Opensource.com

新年快乐!我本月正忙于撰写几篇篇幅较长的文章,敬请期待未来几周的文章。对于本月的“边角料”,我想简要介绍一个很棒的 R 库,我一直在使用它进行自我教育。

我的一位密友最近一直在用 R 语言进行黑客编程。我一直对此很感兴趣,并且一直在努力挤出一点时间来至少更多地了解 R 语言以及你可以用它做哪些事情。弄清楚数字处理能力对我来说是一个持续的挑战,因为我远不如我的朋友那样拥有出色的数学头脑。对我来说,这是一个缓慢的过程,但我一直在尝试将其与我在其他领域的经验联系起来,并且我开始考虑甚至非常简单的 Web 应用程序。

Shiny 是 RStudio 的一个工具包,它使创建 Web 应用程序变得更加容易。从 R 控制台轻松安装,只需一行代码,即可加载最新的稳定版本供您使用。这里有一个很棒的教程,它将引导您了解设置应用程序的概念,并在之前的课程基础上构建技能。Shiny 根据 GPLv3 许可获得许可,源代码可在 GitHub 上找到。

这是一个使用 Shiny 编写的简单的小型 Web 应用程序


library(shiny)

server <- function(input, output, session) {
    observe({
	    myText <- paste("Value above is: ", input$textIn)
		updateTextInput(session, "textOut", value=myText)
    })
}

ui <- basicPage(
    h3("My very own sample application!"),
	textInput("textIn", "Input goes here, please."),
	textInput("textOut", "Results will be printed in this box")
)

shinyApp(ui = ui, server = server)

当您在输入框中键入内容时,文本会在输出框中的前缀后复制。这没什么特别之处,但它向您展示了 Shiny 应用程序的基本结构。“服务器”部分允许您处理所有后端工作,例如计算、数据库检索或应用程序需要发生的任何其他事情。“UI”部分定义了界面,可以根据需要简单或复杂。

Shiny 中包含使用 Bootstrap 进行样式设置和显示主题的广泛功能,因此您可以在学习一点知识后,在 R 中为 Web 创建广泛的、功能丰富的应用程序。附加包可以将功能扩展到更高级的 JavaScript 应用程序、模板等等。

您可以通过多种方式处理 Shiny 的后端工作。如果您只是在本地运行您的应用程序,加载库即可解决问题。对于您想要发布到 Web 的应用程序,您可以在 RStudio 的 Shiny 网站上共享它们,运行 Shiny 服务器的开源版本,或者通过年度订阅服务从 RStudio 购买 Shiny Server Pro。

经验丰富的 R 大师可能已经了解 Shiny 的一切;它已经存在几年了。对于像我这样来自完全不同类型的编程并且想学习一点 R 语言的人来说,我发现它非常有用。

标签
User profile image.
Ruth Holloway 长期以来一直是一名系统管理员和软件开发人员,早在 VAX 11/780 上就开始了她的职业生涯。她职业生涯的大部分时间(到目前为止)都在为图书馆提供技术需求服务,并且自 2008 年以来一直是 Koha 开源图书馆自动化套件的贡献者。Ruth 目前是 Clearbuilt 的 Perl 开发人员和项目主管。

3 条评论

很棒的文章。 也许可以提及 http://shinyproxy.io,这是一个越来越流行的开源替代方案,用于运行 Shiny 应用程序。

亲爱的 Ruth,感谢您非常具有教学意义且清晰的内容。 这对于开始使用 Shiny 的 R 语言人员非常有用。
我的问题是 - 您认为 Shiny 编程可以在 ASP.NET MVC 中实现吗?

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.