DT和downloadButton应用

library(shiny)
library(DT)
ui <- shinyUI(
fluidPage(
titlePanel("DT test"),
downloadButton('downloadData', 'Download'), fluidRow(
DT::dataTableOutput("table")
)
)
)
server <- shinyServer(function(input, output) { output$table <- DT::renderDataTable(DT::datatable({
mtcars
}, rownames = FALSE)) output$downloadData <- downloadHandler(
filename = 'test.csv',
content = function(file) {
write.csv(mtcars, file)
}
)
}) shinyApp(ui,server)

downloadButton 中验证结果输出

一种情况是通过shinyjs,只有输入时,才显示下载按钮:

library(shiny)

ui <- fluidPage(
shinyjs::useShinyjs(),
textInput("text", "content", "", placeholder = "please insert something"),
shinyjs::hidden(downloadButton("download"))
) server <- function(input, output, session) {
output$download <- downloadHandler(
filename = "file.csv",
content = function(file) {
write.csv(data.frame(content = input$text), file)
}
) observeEvent(input$text, {
if (input$text == "")
shinyjs::hide("download")
else
shinyjs::show("download")
})
} shinyApp(ui, server)

另一种情况是downloadButton搭配uiOutput,即只有输出结果出现时,下载按钮才出现。

#ui端
uiOutput("download")
#server端
output$download <- renderUI({
if(!is.null(input$file1) & !is.null(input$file2)) {
downloadButton('OutputFile', 'Download Output File')
}
})

https://stackoverflow.com/questions/44179974/display-download-button-in-shiny-r-only-when-output-appears-in-main-panel

添加进度条

但不是真正的程序进度。

# Only run examples in interactive R sessions
if (interactive()) {
options(device.ask.default = FALSE) ui <- fluidPage(
plotOutput("plot")
) server <- function(input, output) {
output$plot <- renderPlot({
withProgress(message = 'Calculation in progress',
detail = 'This may take a while...', value = 0, {
for (i in 1:15) {
incProgress(1/15)
Sys.sleep(0.25)
}
})
plot(cars)
})
} shinyApp(ui, server)
}

https://shiny.rstudio.com/articles/progress.html

如何确保仅在使用Shiny按下操作按钮时才触发操作

search_tweets <- function(search) return(search)

library(shiny)
ui <- fluidPage( # Application title
#titlePanel("Twitter Analytics"), fluidRow(
column( 4, titlePanel("Twitter Analytics")),
column( 3, textOutput("mysearch") ),
column( 4, textInput("searchstring",
label = "",
value = "")),
column(1,
br(),
actionButton("action", "go")) )
) server <- function(input, output) { twitter <- eventReactive(input$action,{
search_tweets(input$searchstring)
}) output$mysearch <- renderText({
twitter()
})
} shinyApp(ui, server)

https://mlog.club/article/4593588

其他

shiny页面布局

observeEvent和eventReactive的区别

数据响应触发

需要系统性学习了,不然不能随心所欲,寸步难行。多看看别人的项目:

https://github.com/rli012/CancerMIRNome

https://github.com/wangshisheng/NAguideR

【R shiny】一些应用记录的更多相关文章

  1. Building [Security] Dashboards w/R & Shiny + shinydashboard(转)

    Jay & I cover dashboards in Chapter 10 of Data-Driven Security (the book) but have barely mentio ...

  2. R Shiny app | 交互式网页开发

    网页开发,尤其是交互式动态网页的开发,是有一定门槛的,如果你有一定的R基础,又不想过深的接触PHP和MySQL,那R的shiny就是一个不错的选择. 现在R shiny配合R在统计分析上的优势,可以做 ...

  3. R shiny 小工具Windows本地打包部署

    目录 服务器部署简介 windows打包部署 1. 部署基本框架 2.安装shiny脚本需要的依赖包 3.创建运行shiny的程序 [报错解决]无法定位程序输入点EXTPTE_PTR于动态链接库 将小 ...

  4. R︱shiny实现交互式界面布置与搭建(案例讲解+学习笔记)

    要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 看了看往期的博客,这个话题竟然是第 ...

  5. kmeans聚类中的坑 基于R shiny 可交互的展示

    龙君蛋君 2015年5月24日 1.背景介绍 最近公司在用R 建模,老板要求用shiny 展示结果,建模的过程中用到诸如kmean聚类,时间序列分析等方法.由于之前看过一篇讨论kmenas聚类针对某一 ...

  6. 将Shiny APP搭建为独立的桌面可执行程序 - Deploying R shiny app as a standalone application

    目录 起源! 目的? 怎么做? 0 准备工作 1 下载安装R-portable 2 配置 Rstudio 3 搭建Shiny App 3.1 添加模块 3.2 写AppUI和AppServer 3.3 ...

  7. 使用R语言将微信记录制作成词云(简洁)--情人节奥义

    一.导出并读入微信聊天记录     参照百度的方法,使用同步助手.安装同步助手--连接手机(安卓苹果均可)--点击"其他功能"--点击微信图标即可进入聊天记录导出界面(非常简单). ...

  8. R 语言学习过程全记录 ~

    RStudio介绍超详细的教程:https://www.jianshu.com/p/132919ca2ca9 前辈的心得:https://blog.csdn.net/kMD8d5R/article/d ...

  9. SHINY-SERVER R(sparkR)语言web解决方案 架设shiny服务器

    1. shiny server简介 shiny-server是一种可用把R 语言以web形式展示的服务,其实RStudio公司自己构建了R Shiny Application运行的平台(http:// ...

随机推荐

  1. 【二食堂】Beta - Scrum Meeting 10

    Scrum Meeting 10 例会时间:5.25 18:30~18:50 进度情况 组员 当前进度 今日任务 李健 1. 继续文本导入.保存部分的工作issue 2. 完成了技术博客 1. 继续文 ...

  2. elasticsearch嵌套对象的映射

    在es中,我们有时候可能需要映射,{ "field" : "xx" , "field01" : [] }这样格式的嵌套对象,默认情况下es会 ...

  3. springboot多配置环境

    在我们的开发过程中,经常会有多套配置环境,比如开发环境(dev),测试环境(test),生产环境(prod)等,在各个环境中我们需要使用到不同的配置,那么在springboot中是如何做到的呢? 1. ...

  4. 用cmd命令行创建vue项目模板

    1.进入cmd命令行 输入存放项目的位置 2.通过vue create 项目名称 创建项目 3.选择Manually select features 4.通过空格选中第1.2.5.6.7.去掉8 4. ...

  5. Linux零基础之shell基础编程入门

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  6. 第12课 OpenGL 显示列表

    显示列表: 想知道如何加速你的OpenGL程序么?这一课将告诉你如何使用OpenGL的显示列表,它通过预编译OpenGL命令来加速你的程序,并可以为你省去很多重复的代码. 这次我将教你如何使用显示列表 ...

  7. 算法学习->求解三角形最小路径及其值

    00 问题 00-1 描述 对给定高度为n的一个整数三角形,找出从顶部到底部的最小路径和.每个整数只能向下移动到与之相邻的整数. 找到一个一样的力扣题:120. 三角形最小路径和 - 力扣(LeetC ...

  8. 【高并发】深入解析Callable接口

    大家好,我是冰河~~ 本文纯干货,从源码角度深入解析Callable接口,希望大家踏下心来,打开你的IDE,跟着文章看源码,相信你一定收获不小. 1.Callable接口介绍 Callable接口是J ...

  9. Eclipse 中的Maven常见报错及解决方法

    1.不小心将项目中的Maven Dependencies删除报错 项目报错: 点击Add Library,添加Maven Managed Dependencies又提示如下: 在这个时候需要项目右键: ...

  10. spark搭建

    1.上传解压,配置环境变量 配置bin目录 2.修改配置文件 conf cp spark-env.sh.template spark-env.sh 增加配置 export SPARK_MASTER_I ...