shiny app制作基本思路

之后的文章一般会发于此处了:个人博客

Shiny是基于R的实时计算服务器(serve),并通过CSS,htmlwidge,Javascript来进行拓展的web **交互界面(UI)**展现的构造工具包。

R作为一种以本地会话(local session)为主要使用场景的语言,交互性、可嵌入性和自动化一直是其软肋。Rstudio希望发展基于R构建BI工具,就需要将本地的会话和线上的展示交互结合。因此,这也引出了shiny为回应以上需求,而在结构设计上着墨的三个根本要素:服务器(Serve)、交互界面(UI)和反应连结(Reactivity)。

这也可以引出shiny设计的一个根本思路:反应表达式(reactive expression)。最简洁的理解反应式表达的的示例:

input values => R code => output values/result

当表达式开始执行的时候,将会自动跟踪读取到的反应值以及调用的其他反应表达式。如果反应表达式所依赖的反应值和反应表达式发生了改变,那么该反应表达式的返回值也应该变化,改变一个反应值会自动引发依赖于它的反应表达式重新执行。
——shiny中文教程

具体而言,shiny的构成组件主要是这个样子:

服务器serve
用户界面UI
表达抑制(prevent)
isolate()
输入(input$x)
reactiveValues()
*Input()
表达(expression)
reactive()
触发展示(Trigger)
observe()
observeEvent()
输出(output$y)
render*()
延迟表达
(delay reaction)
eventRactive()
  • 此处的serve和ui不等同于shiny中实际的serve和ui函数,仅是指对于app用户来说的最终呈现情况

基于以上对于shiny设计思路的介绍,就能容易理解shiny代码的基本结构,ui部分(对象值),server部分(函数)以及app结合部分(对象值)。

library(shiny)
ui #UI部分 <- fluidPage( 
numericInput(inputId = "n","Sample size", value = 25),
plotOutput(outputId = "hist")
)
server #服务器部分 <- function(input, output) { 
output$hist <- renderPlot({
            hist(rnorm(input$n
  • 9
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值