内容简介:继续整理shiny的几个用法DT包可以说是shiny网页展示表格的首选(个人觉得哈),其功能丰富,是JS的DataTables库的R端口,功能非常强强大,简单的使用即可满足常用的需求,如:其中
继续整理shiny的几个用法
DataTables in a Shiny App
DT包可以说是shiny网页展示表格的首选(个人觉得哈),其功能丰富,是JS的DataTables库的R端口,功能非常强强大,简单的使用即可满足常用的需求,如:
library(DT) ui <- basicPage( h2("The mtcars data"), DT::dataTableOutput("mytable") ) server <- function(input, output) { output$mytable = DT::renderDataTable({ mtcars }) } shinyApp(ui, server)
其中 DT::dataTableOutput
可用 DTOutput
代替,同时 DT::renderDataTable
需要改用 renderDT
,后者更加符合shiny的代码风格
详细的功能,我之前也做过DT包的使用笔记Learning DT包,只能说一句:非常好用!
官方手册: DT: An R interface to the DataTables library
upload files
作为一个主打交互网站的shiny,有一个让用户输入文件的接头是必须的,这可以用 fileInput
函数,UI端如下:
fileInput(inputId = "file", label = "File Input:", accept = c("text/plain", ".txt"))
对输入文件的格式要求主要看accept参数,其对应的是MIME类型,常见的有:
- 普通文本:.txt,text/plain
- csv文本:.csv,text/csv
- GIF:.gif,image/gif
对应的server端,如下:
infile <- input$file data <- read.table(infile$datapath, sep = "\t", header = T, stringsAsFactors = F)
Shiny HTML Tags Glossary
HTML相比不陌生,写网页必备;shiny身为一个网页可视化工具,其也是兼容HTML语法的,所以你想在网页上添加一些HTML标签的话只需要用HTML语法就行;但是shiny作者为了让HTML标签让不懂html的人能以R的角度来理解,将其全部改写为了R函数形式了。。。
如要写个h1标题,HTML标签: <h1>My header</h1>
,而shiny函数则是: tags$h1("My header")
tags函数包含了110个HTML标签,如用 names(tags)
查看,如:
> head(names(tags)) [1] "a" "abbr" "address" "area" "article" "aside"
几个比较实用的有:
-
链接网站:
tags$a(href="www.rstudio.com", "Click here!") <a href="www.rstudio.com">Click here!</a>
-
添加文字:
tags$p("First paragraph") <p>First paragraph</p>
-
添加图片
tags$img(src = "www.rstudio.com", width = "100px", height = "100px") <img src="www.rstudio.com" width="100px" height="100px"/>
而且还可以像HTML那样添加子元素,如:
tags$div(class = "header", checked = NA, tags$p("Ready to take the Shiny tutorial? If so"), tags$a(href = "shiny.rstudio.com/tutorial", "Click Here!") ) <div class="header" checked> <p>Ready to take the Shiny tutorial? If so</p> <a href="shiny.rstudio.com/tutorial">Click Here!</a> </div>
但是说真的,我还是觉得用HTML原生态的比较好,至少资料多。。。
Download data
比如我们通过shiny网页小程序将输入的数据通过一定的处理后产生结果文件,这时我们需要将这部分的数据弄一个可选择的按钮之类
首先一般会使用 downloadButton("downloadData", "Download")
来在UI界面上形成一个下载按钮
接着就是用server中用代码将你所需要的数据/图片等输出了,这里的写法比较固定化(刚接触的话最好按照模板修改,不然会失败,被坑过。。。)
output$downloadData <- downloadHandler( filename = function() { paste(input$dataset, ".csv", sep = "") }, content = function(file) { write.csv(datasetInput(), file, row.names = FALSE) } )
这里需要分成两部分写, filename = function(){}
确定要输出的文件格式和文件名, content = function(file){}
确定输出文件的内容(可以是图片,也可以是表格等),必须要有这两部分哦
还可以在 downloadHandler
函数中设定输出文件格式,如: image/png
, text/csv
等
除了常见的图片png,表格txt外,还有一些需要借助的包才能输出的格式,如xlsx等也可以在shiny中输出的,如我之前想用openxlsx包来输出的xlsx表格:
output$download <- downloadHandler( filename = function(){ "ouput.xlsx" }, content = function(file) { fname <- paste(file,"xlsx",sep=".") wb <- createWorkbook() createSheet(wb,"sheet1") writeWorksheet(wb,data = res,sheet = "sheet1") saveWorkbook(wb, file) } )
这两篇shiny用法整理笔记,以上均来自于 http://shiny.rstudio.com/articles/ 中比较常用的用法笔记,shiny团队将近几年的shiny文档均整理下一起了,不定时的阅读下,或者有需要的时候去翻下都是不错的选择
本文出自于 http://www.bioinfo-scrounger.com 转载请注明出处
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Shiny用法整理(一)
- shiny用法整理(三)
- Pandas数据可视化工具——Seaborn用法整理
- 照片整理系列二 —— 照片整理及归档的辛酸历程
- 我自己整理的码农周刊一周分享整理
- 【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Professional JavaScript for Web Developers
Nicholas C. Zakas / Wrox / 2009-1-14 / USD 49.99
This eagerly anticipated update to the breakout book on JavaScript offers you an in-depth look at the numerous advances to the techniques and technology of the JavaScript language. You'll see why Java......一起来看看 《Professional JavaScript for Web Developers》 这本书的介绍吧!