Shiny简介
Shiny是RStudio公司开发的新包,有了它,可以用R语言轻松开发交互式web应用。
Shiny特性
- 只用几行代码就可以构建有用的web应用程序—不需要用JavaScript。
- Shiny应用程序会自动刷新计算结果,这与电子表格实时计算的效果类似。 当用户修改输入时,输出值自动更新,而不需要在浏览器中手动刷新。
- Shiny用户界面可以用纯R语言构建,如果想更灵活,可以直接用HTML、CSS和JavaScript来写。
预先构建有输出小工具,用来展示图形、表格以及打印输出R对象。 - 采用反应式(reactive)编程模型,摒弃了繁杂的 事件处理代码,这样你可以集中精力于真正关心的代码上。
- 开发和发布你自己的Shiny小工具,其他开发者也可以非常容易地将它加到自己的应用中
书写本文档初衷
以下几种情况:
- 肯定是官网的cookbook看的废掉了, 还是没入门!
- 写说明文档的同事考虑过小白的感受么!
- 还是英文的, 我虽然看得懂, 但是…不想看啊!
- 我就想吃一个鸡蛋, 你把鸡的进化史都扔过来了, 同理, 我只想看一下如何上传数据, 分析数据, 下载结果, 然后你让我学html, 学css, 学JavaScript…
ok, 吐槽结束.
1, 使用RStudio新建一个Shiny App
点击新建, Shiny Web App
2, 命名为shiny-download
3, 运行模型
点击Run App
4, 查看app
5, 如何上传数据呢
目的:
- 1, 上传csv格式的数据
- 2, 上传后数据打印head结果
- 3, 上传后数据打印summary结果
shinydashboard使用指南
这是非常友好的可以生成ui界面, 结构如下:
dashboardPage # 定义整个界面, 分为三部分
- 1, dashboardHeader #标题
- 2, dashboardSidebar #导航栏
- 3, dashboardBody # 主界面栏
library(shiny)
library(data.table)
library(shinydashboard)
ui = dashboardPage(
dashboardHeader(title = "如何上传数据"),
dashboardSidebar(
menuItem("上传数据",tabName = "a"),
br(),
menuItem("head结果",tabName = "b"),
br(),
menuItem("summary结果",tabName = "c")
),
dashboardBody(
tabItems(
tabItem(tabName = "a",fileInput("dat","上传csv文件",accept = ".csv")),
tabItem(tabName = "b",tableOutput('head')),
tabItem(tabName = "c",verbatimTextOutput("summary"))
)
)
)
server <- function(input, output) {
d1 <- reactive({
inFile1 <- input$dat
if (is.null(inFile1)) return(NULL)
fread(inFile1$datapath)
})
output$head <- renderTable({
dat= d1()
head(dat)
})
output$summary <- renderPrint({
dat= d1()
summary(dat)
})
}
shinyApp(ui = ui, server = server)
6, 展示
- 上传数据
- head结果
- summary结果
其它相关
shiny学习笔记1—上传数据
shiny学习笔记2-下载数据 - CSDN博客
shiny学习笔记3–利用rmarkdown生成html报告 - CSDN博客