R海拾遗-shiny_先康康

2020-09-15 15:20:15 浏览数 (3)

shiny_先康康

概述

shiny是一个制作app的包,具有和web交互的功能

正文

一个例子

代码语言:javascript复制
# 安装包
install.packages("shiny")

library(shiny)
# 演示官方的例子
runExample("01_hello")

运行之后R语言会弹出一个网页,这个网页布局如下,上面为交互式的直方图,下面为app.R的代码

shiny的构成

  • 用户交互脚本(ui)
  • 服务器脚本(server)
  • 调用函数
ui脚本

关键点:括号别自己整乱了

代码语言:javascript复制
library(shiny)

# ui脚本编写
ui<-fluidPage(#创建一个自动调整用户浏览器窗口
  # app标题
  titlePanel("Hello Shiny!"),
  # 定义左边交互式的拉条
  sidebarLayout(
    position = "right",#指定位置
    #侧边面板
    sidebarPanel(
      sliderInput("bins",
                  "Number of bins:",#箱子的标题
                  min = 1,#bar最小值
                  max = 50,#bar最大值
                  value = 30)
    ),
    # 主面板
    mainPanel(
      plotOutput("distPlot")
    )
  )
)
服务器脚本
代码语言:javascript复制
library(shiny)

# 定义服务器脚本
server<-function(input, output) {
  output$distPlot <- renderPlot({
    x    <- faithful[, 2]  #定义x的值,这里使用的是faithful数据
    bins <- seq(min(x), max(x), length.out = input$bins   1)# 定义bins,seq为生成序列
    # 绘制函数
    hist(x, breaks = bins, col = 'darkgray', border = 'white')
  })
}
对app进行运行
代码语言:javascript复制
shinyApp(ui = ui, server = server)

上述的代码是将服务器脚本和ui脚本放在一起运行,然后保存在了你自己定义的文件夹内,本例子的文件夹名字叫shiny_1,那么你可以按照下述运行

代码语言:javascript复制
#工作目录必须在这里,负责报错,或者写全路径
runApp("shiny_1")

结束语

shiny真有意思,感觉可以开个专栏来写 明天有事儿,闲下来估计就周一了,所以要停更3天

love&peace

0 人点赞