美文网首页数据科学
关于 R Markdown 的一些 tips

关于 R Markdown 的一些 tips

作者: 天涯清水 | 来源:发表于2022-06-28 06:38 被阅读0次

    关于 R Markdown 的一些 tips

    https://mp.weixin.qq.com/s/gM3JjC4biYGKKZsIRC4XQQ
    原创 鲍志炜 [生信菜鸟团](javascript:void(0);) 昨天

    节选自 Pimp my RMD: a few tips for R Markdown https://holtzy.github.io/Pimp-my-rmd

    章节自动编号

    在 YAML 文件中用 number_sections: TRUE 参数设置自动编号:

    ---
    
    image

    跳过一行

    可以用 html 中的 <br> 标签来插入换行符。

    A first sentence
    
    image

    图片居中

    同样可以用 html 代码居中图片

    <center>
    

    减少图片周围的空白区域

    有时候 R 代码生成的图片周围有太多空白,这时可以用 fig.asp 参数来调整。这里我使用了 fig.asp=0.50

    library(png)
    
    image

    上图为未加参数,下图为添加了参数

    添加 footer 和 header

    我们也可以在文档的开头或结尾添加一些 html 代码。下面是我在本文末尾添加的 html 代码:

    
    

    将这段 html 代码保存为 footer.html,然后在 YAML 中声明:

    ---
    

    你的 footer 就会变成这样:

    image

    在标题前加上空行

    除了在每个标题前加上 <br> 外,更方便的办法是直接在 .css 文件中添加样式。创建一个 style.css 文件:

    h1, .h1, h2, .h2, h3, .h3 {
    

    在 YAML 中指定该 .css

    ---
    

    图注

    我们可以在代码块的 header 中添加图注,例如:

    {r, fig.align="center", fig.width=6, fig.height=6, fig.cap="Figure: Here is a really important caption."}
    
    library(tidyverse)
    
    image

    自定义图注样式

    同样可以用 css 自定义图注样式,比如把下面的代码添加到 style.css 文件中:

    <style>
    

    图注的样式就会改为这样:

    image

    数学公式

    在 R Markdown 中可以用 LaTeX 语法插入数学公式,用 $ 分隔 Latex 语法:

    $A = (\pi * \lambda \times r^{4}) / \alpha $
    

    并排放两张图

    在 chunk header 中加上 out.width=c('50%', '50%'), fig.show='hold' 即可:

    ```{r out.width=c('50%', '50%'), fig.show='hold'}
    
    image

    为子标题实现选项卡切换的效果

    这个样式同样用 .css 来实现。

    image image image

    首先,在一级标题后加上 {.tabset .tabset-fade .tabset-pills}(把二级标题作为选项卡)

    # Use buttons or tabs for sub-chapters {.tabset .tabset-fade .tabset-pills}
    

    修改 .css

    .btn {
    

    用 DT 包来展示表格

    DT 包[1] 可谓是 R Markdown 的最佳伴侣,它可以在网页上轻松实现交互式的表格:

    library(DT)
    
    image

    隐藏代码

    有时候你只想分享实验结果而非一些冗长的代码,这时就可以在 YAML 中设置参数来隐藏代码:

    output:
    

    高亮一段话

    同样,我们可以用 css 代码来改变段落的背景色以高亮显示:

    <style>
    
    image

    视差滚动

    因为 R Markdown可以输出 html 文档,所以理论上可以实现网页中的各种视觉效果。比如实现「视差滚动」:

    image

    需要用到的 cssheader.html 可从这里下载:https://github.com/holtzy/R-Markdown-Parallax

    缓存

    可以在代码块的 header 中添加 cache=TRUE 来缓存特定 chunk,也可以直接在文档的最开始加上 knitr::opts_chunk$set(cache=TRUE) 实现对整个文档的缓存。

    注意:请谨慎使用此选项,强烈建议阅读 Yiyi Xie 撰写的有关此部分内容的文档[2]

    在网页右上角加上 Github 链接

    为了实现这种效果,我一般用的是 Tim Holman 的代码[3],把这段代码粘贴到 header.html 中,使用方法同添加 footer 代码一样。

    image

    内部链接

    您可以使用锚点在 R Markdown 中使用内部链接(可通过锚点连接网页内的任意标题)。如何实现这个效果:

    •第一步 - 在标题处添加一个锚点:

    # Add a github link in the corner of your document {#github-link}
    

    •第二步 - 用链接指向该锚点:

    For example, [this link](#github-link) will bring ...
    

    交互式图表

    可使用 plotly 构建交互式图表,充分利用 html 可交互的特性。

    library(ggplot2)
    
    image

    主题

    你可以使用任何 bootswatch 主题[4]来自定义文档的字体和外观。还可以调整高亮显示样式:

    title: "your title"
    

    模板

    R Markdown 可以使用许多美观的模板,这里推荐两个包:

    •prettydoc[5] by Yixuan Qiu•rmdformats[6] by Julien Barnier. It provides several templates, like readthedown:

    image

    把网页分享到互联网上

    按照下面的步骤就可以把你的 html 放在 github 上显示啦:

    1.创建 github 账号。2.将 .rmd 文件重命名为 index.rmd,并 Knit 生成 index.html 文件。3.使用工作目录生成一个 github 仓库4.进入该仓库:Settings -> GitHub Pages -> Source -> Master Branch -> Save5.稍等一会你的 .html 文件就可在相应域名访问。

    image

    用 R Markdown 创建静态网页

    这一部分内容可参见 blogdown package[7]

    创建 R Markdown 模板

    关于这个话题详细内容参见 Rstudio documentation[8]

    Session info

    在文档末尾添加 session info 是一个比较好的习惯,这将提高结果的可重复性。只需一行代码即可实现:

    sessionInfo()
    
    ## R version 3.4.1 (2017-06-30)
    

    一些快捷键

    运行代码

    command + Enter on Mac
    

    插入注释

    command + Shift + C on Mac
    

    Knit a R Markdown document

    command + Shift + K on Mac
    

    创建新的代码块

    command + option + I on Mac (or command + alt + I depending on your keyboard)
    

    重新格式化代码

    cmd + Shift + A on Mac
    

    引用链接

    [1] DT 包: https://rstudio.github.io/DT/
    [2] Yiyi Xie 撰写的有关此部分内容的文档: https://yihui.name/knitr/demo/cache/
    [3] Tim Holman 的代码: https://github.com/tholman/github-corners
    [4] bootswatch 主题: https://bootswatch.com/
    [5] prettydoc: http://yixuan.cos.name/prettydoc/
    [6] rmdformats: https://github.com/juba/rmdformats
    [7] blogdown package: https://github.com/rstudio/blogdown
    [8] Rstudio documentation: https://rmarkdown.rstudio.com/developer_document_templates.html


    生信技能树目前已经公开了三个生信知识库,记得来关注哦~

    每周文献分享

    https://www.yuque.com/biotrainee/weeklypaper

    肿瘤外显子分析指南

    https://www.yuque.com/biotrainee/wes

    生物统计从理论到实践

    https://www.yuque.com/biotrainee/biostat


    友情宣传

    强烈建议你推荐给身边的博士后以及年轻生物学PI,多一点数据认知,让他们的科研上一个台阶:

    生信技能树的2019年终总结,你的生物信息学成长宝藏•2020学习主旋律,B站74小时免费教学视频为你领路全国巡讲全球听(买一得五),你的生物信息学入门课

    相关文章

      网友评论

        本文标题:关于 R Markdown 的一些 tips

        本文链接:https://www.haomeiwen.com/subject/jrmgyhtx.html