R markdown的笔记02

  • 1. R Markdown 可以做什么?
  • 3. 文档总体设置
  • 4. 富文本格式
    • 4.1 普通文本
    • 2. 分段
    • 4. 各级标题
    • 5.分隔线
    • 6. RMarkdown 的注释
    • 7. 无序列表
    • 8. 有序列表
    • 10. 斜体
    • 11. 加粗
    • 12. 粗斜体
    • 13. 行内代码文本
    • 14. 代码文本块
    • 15-17. 下表、上标与同是上下标
    • 18. 行内公式与公式块
    • 20. 特殊字符与转义符
    • 21. 链接
    • 22. 插入图片
    • 23.插入表格
    • 26-29 字体、字号、文字颜色、背景颜色
    • 31. 对齐
    • 32. 缩进
    • 33-34. 插入视频、音频
  • 5. 与代码的交互
  • 6. 代码块选项
    • 1-7
    • 8. 全局代码设置
    • 9. 图片格式设置
    • 10. 表格格式设置
    • 7. 交互式图表
    • 7. gif图呈现

title: “R markdown的笔记02”
author: “ks_c”
date: “2021/1/30”
output: html_document


参考 R 数据分析指南与速查手册 第5章内容

1. R Markdown 可以做什么?

  1. 单篇文档:

    • R分析报告(html_notebook)
    • html/pdf/word_document
    • 仪表盘(flexdashboard::flex_dashboard)
    • PPT(powerpoint_presentation)
  2. 书(bookdown框架):
    HTML版本:gitbook、ctexbook、html_book
  • pdf版本(pdf_book)
  • epub版本(epub_book)
  • 格式和书一样丰富的单篇文档:
    • HTML文档(html_document2)
    • PDF文档(pdf_document2)
    • word文档(word_document2
  1. 网站(bolgdown框架)

#2. 为什么用R_Markdown

  1. 类似jupyter笔记本,将代码和输出结合在一起

  2. 有利于可重复性分析报告(Reproducible reports)。将说明文字、数据、代码、计算结果、可视化图表等结合在一起,其中的计算结果与可视化图表由对应的代码自动生成,而不是先在其他环境中运行代码、保存结果、再将结果复制粘贴到报告中。这就是可重复性分析报告

    • 代码与文字结合,易于解读,排版方便
    • 结果由代码直接生生,利于改动
    • 只要数据源不作假,结果、图表都不可能伪造

3. 文档总体设置

YAML代码块:YAML块是Rmd文件最上方进行全局设置的代码块,上下被3个减号包围。不是Markdown语法,而是YAML语法。下面是一个典型的块:

---
title: "name ur titile"
author: "me"
date: "2021-1-30"# 以html输出
output: html_document:theme: ceruleantoc: true# toc_depth: 2toc_float:truenumber_sections: true# 以word输出
output: word_documenttheme: ceruleantoc: true# toc_depth: 2toc_float:truenumber_sections: true
---
设置 解释
title、author、date 文章标题、作者、日期
output 输出文档格式
theme 主题设置
toc 目录

上级和下一级之间有两个空格。

常见格式见标题1
其他设置见[yihui xie,R Markdown: The Definitive Guide]https://bookdown.org/yihui/rmarkdown/#preface)

4. 富文本格式

4.1 普通文本

直接输入即可。不同模块之间最好用一行空格隔开,以防歧义。

输出含有中文的PDF时,一般需要有特别的设置:

如果有中文,LaTex 引擎需要选择为 xelatex,可以通过这张图的方式进行更改:

小齿轮->output format:PDF
小齿轮->advanced->LaTeX engine:改为xelatex

或者在开头输入:

output:pdf_document:latex_engine: xelatex

如果中文全部空白,更改LaTex 的配置,用中文字体来渲染(渲染什么意思?):

outputs:pdf_document:includes:in_header: header.texlatex_engine: xelatexheader.tex可以是以下内容
\usepackage{xeCJK}
\setCJKmainfont{楷体}  % 字体可以更换
\setmainfont{Georgia} % 設定英文字型
\setromanfont{Georgia} % 字型
\setmonofont{Courier New}

2. 分段

在两段的代码之间空一行(多敲一次回车)。输出结果会显示合适的段间距,但不会输出一个空行。

4. 各级标题

半角的#代表标题,有几个#就是几号标题。级别越多,字体越小。

一级标题可以不加#,在下表加一行=也表示一级标题。
二级标题则可以用一行-表示

1级标题
===================================
任意正文2级标题
------------------------------------
任意正文

如果全局设置标题为编号的方式,而需要某个标题不编号,则在标题后添加{-}{.unnumbered}即可。

5.分隔线

单行3个及以上的减号-,该行没有其他符号,且与上下文本之间有空行分隔,则显示为分隔线。如:

上一部分文本------------------------------------下一部分文本

二级标题的-上下两行均不存在空行。

6. RMarkdown 的注释

文本注释:依然可使用Ctrl+Shift+C的快捷键,其结果为在待注释的文本前添加
R代码注释:无论是行内代码还是代码块,对于代码正文(不包括前后的斜引号及大括号里面的内容)来说,依然可使用Ctrl+Shift+C的快捷键,其结果与普通R脚本中的注释相同,为在待注释的文本前加井号#,文本注释与R代码注释举例如下:

这是行内R代码注释r # notes

这是未被注释的Markdown文本
<!-- 这是文本注释 --># 这是R代码中的文本注释,和R脚本中的文本注释相同
# a <- "this is the notes of code"
b <- "this is normal code"  # notes

7. 无序列表

  • 在每一条前面添加减号-或加号+或乘号*,并用空格将该符号与文本分隔,则显示为无序列表。

  • 列表的各条之间如果有空行,间距视为段间距,如果没有空行,间距视为行间距。

  • 三种符号之间可以任意混用。对显示效果没有影响。但建议同一级列表采用同一种符号开头。建议多级列表依次采用减号-、加号+与乘号*开头,超过3级循环使用。

  • 次级列表比上级列表至少多空2个空格或1个Tab键,建议采用空一个Tab的形式。

    • 这是次级列表。
  • 多段列表:

    后面的段落与第一段列表开头对齐,且与前一段之间有空行。

  • 列表中含代码块,列表终止,见pandoc文档 https://pandoc.org/MANUAL.html#pandocs-markdown

8. 有序列表

在每一条前面添加一个数字与点,并用空格将该符号与文本分隔,则显示为数字有序列表。

数字可以是任意非负整数,可以是多位数,且不必按顺序写,可用重复数字,显示的序号从第1条的数字开始编号。

替代方案有

  • 用英文圆括号将数字括起来开头,符号和文本之间用空格分隔。
  • 数字后面接一个后圆括号,项目符号和文本之间用空格分隔。

以上两种方式,显示的效果依然为数字加点的形式。

  • 次级数字列表比上级列表至少多空3个空格或2个Tab键,也即项目符号至少和上一级的正文对齐,建议用3个空格的形式。
  • 在每一条前面添加一个小写字母与点,并用至少1个空格将该符号与文本分隔,则显示为小写字母有序列表,显示的序号从第1条的字母开始编号。
  • 在每一条前面添加一个大写字母与点,并用至少2个空格将该符号与文本分隔,则显示为大写字母有序列表,显示的序号从第1条的字母开始编号。
  • 项目符号不能是字母组合,且不必按顺序写。

10. 斜体

  • 用星号*括起来即可。
  • 也可用下划线_代替星号,但此时前下划线必须与前面的文本之间用空格分隔。
  • 当待加粗的文本本身含有*时,在文本的星号前加上反斜杠即可。

11. 加粗

  • 用2个星号*括起来即可。
  • 也可以用下划线_代替星号,
    前下划线必须与前面的文本之间用 __空格__分隔。

12. 粗斜体

  • 用3个星号*括起来即可,
  • 也可以用下划线_代替星号,前下划线必须与前面的文本之间用 空格 分隔。

13. 行内代码文本

斜引号(重音符) ` 括起来即可
含有n个不连续的斜引号要用n+1对斜引号括起来:如为了显示code,代码应该有七个斜引号。

14. 代码文本块

在三个点后边加个‘r’,这段代码块将会高亮显示。
注意不要用括号将r括起来,否则会被视为可执行的r代码。

15-17. 下表、上标与同是上下标

文本前后插入一对^,则该文本显示为下标。如x1显示为x1。

x~1~^2^显示为x12

18. 行内公式与公式块

行内公式用一对美元符号$包围LaTeX公式

公式块则用两个$$来包围

LaTeX的具体公式另行查阅。

20. 特殊字符与转义符

转义符为反斜杠\,当符号具有特殊功能时,要想输出符号本身,在前面加转义符。

单独的大括号可以正常输出,如{},或左括号{,右括号}。

21. 链接

对于文本就是网址的情况来说,无需特殊格式,输入该超链接的文本,系统会自动识别其为超链接。注意该文本应与周围文本用空格分隔。

对文本不同于网址的情况来说,格式为显示文本

22. 插入图片

格式为 ![图片说明](C:/users/lenovo/图片路径),注意图片路径中为正斜杠而不是反斜杠,包含文件名本身。

如果图片所在位置就在项目所在文件夹,在文件名前加点与斜杠,如[图片说明](./fig.png)显示为

如果图片的代码与上下文之间不空行,图片显示的格式如同引用块,单独在下一行。图片后面的文字也会另起一行,但不显示图片说明。如果图片的代码与上下文之间都空行,则会显示图片说明。图片说明在图片下方左侧显示,灰色字体区别于正文的黑色。

当路径中含中文时,在Rstudio浏览器中无法正常显示;当路径不含中文,文件名为中文时,无法在R脚本窗口显示。所以建议路径和文件名都用英文。

如果想控制图片的显示尺寸,可以用下面的方式:
```{r echo=FALSE, fig.cap=“插入本地图片”, out.width = ‘30%’}
knitr::include_graphics("./fig.png")
```

在上面的方法中,将路径名改为网址,还可以插入来自网络的图片(以及本地或网络的gif动图),如

```{r echo=FALSE, fig.cap=“来自网络的图片”, out.width = ‘30%’}
knitr::include_graphics(“https://d33wubrfki0l68.cloudfront.net/aee91187a9c6811a802ddc524c3271302893a149/a7003/images/bandthree2.png”)
```

23.插入表格

Right     Left     Center     Default
-------     ------ ----------   -------12     12        12            12123     123       123          1231     1          1             1Table:  Demonstration of simple table syntax.#这样最右边一格之内会有两行。
: Sample grid table.# 用冒号控制左右和居中+---------------+---------------+--------------------+
| Fruit         | Price         | Advantages         |
+===============+===============+====================+
| Bananas       | $1.34         | - built-in wrapper |
|               |               | - bright color     |
+---------------+---------------+--------------------+
| Oranges       | $2.10         | - cures scurvy     |
|               |               | - tasty            |
+---------------+---------------+--------------------+| Right | Left | Default | Center |
|------:|:-----|---------|:------:|
|   12  |  12  |    12   |    12  |
|  123  |  123 |   123   |   123  |
|    1  |    1 |     1   |     1  |: Demonstration of pipe table syntax.

注意:

  • 表的代码结尾必须空行。
  • 表头上方可以有一行减号,也可以没有。
  • 如果每行内容都是单行,则表主体部分各行之间无需符号分隔,表头与主体之间用减号分隔。
  • 如果需要表内包含多行内容,则结尾必须添加虚线后再空行,虚线可以连续,也可以间断。表头上方必须有一行减号。处于表格不同行的内容,用空行分隔。处于表格同一行,但文本上不同行的内容,分行,但是不用空行分隔。
  • 表头可以省略,但是表头与表主体之间的分隔符不能省略。当表头省略时,结尾必须添加虚线后再空行,虚线可以连续,也可以间断。

###24、25. 引用块和对勾框

在每一段文本(包括空行)前加入>与空格.

可用LaTeX中的语法产生对勾框:□\Box□,对勾:✓\checkmark✓

26-29 字体、字号、文字颜色、背景颜色

用HTML语法实现字体、字号、颜色。

······
如楷体显示为楷体 ,Times New Roman显示为Times New Roman

······
如字号25px显示为字号25px

······
如红色文字显示为红色文字 ,文字色号#33C0FF显示为文字色号#33C0FF

如背景为黄色显示为背景为黄色 ,背景色号为#33FF8B显示为背景色号为#33FF8B

实测在html_document里用······照样可以实现。

31. 对齐

默认为左对齐。
可用HTML语法实现其他对齐。

居中

这是居中对齐的段落。

右对齐

这是右对齐的段落。

分散对其

这是分散对齐的段落,文字不到一行。

32. 缩进

······

缩进两个汉字宽度的形式,可以设置为2em或32px

悬挂缩进

超过一行的段落,第1行未进行缩进,接下来所有行都进行了缩进。缩进的宽度是可以调节的。以上代码是缩进5个汉字宽度的形式。

整体左缩进

所有行左侧都进行了缩进两个字符。

整体左右均缩进

所有行左、右侧都进行了缩进两个字符

33-34. 插入视频、音频

scr就是source,插入本地音视频时需要写清格式,如果在同一文件夹下可以直接写文件名

来自本地的视频。

### 35. 添加附件

点击下载附件 data.csv

效果为点击文字即可下载附件

5. 与代码的交互

  1. 行内代码

  2. 代码块
    作为一个块,R代码会被执行,结果会在下方的另一个块中显示出来,如果是数值或文本,前面会以两个井号开头。如果有警告或报错,也会显示出来。

6. 代码块选项

更多设置可见yihui xie,knitr
或者我的另一篇R markdown笔记03-knitr01

1-7

代码 解释
eval=F 代码块不执行但依旧会显示
echo=F 代码不显示结果、报错等但是会执行
result='hiden' 代码会执行但不会显示结果
results='asis' 结果显示为原本的样子,段前没有#,没有灰色背景
collapse = TRUE 代码与结果在一块,中间没有分割
warning = FALSE 不显示警告
error = FALSE 不显示报错
message = FALSE 不显示通知信息
include = FALSE[1] 仅执行代码,不显示代码,不显示结果,不显示警告、报错等等

[1]: 等价于echo=FALSE, results = ‘hide’, warning = FALSE, message = FALSE

8. 全局代码设置

所有代码均执行相同的设置,则在第一个代码块中按照如下的方式设置。

knitr::opts_chunk$set(fig.width = 8, collapse = TRUE)

9. 图片格式设置

参数 含义
out.width/height 设置图片相对宽度/高度[1]
fig.width=6 图片宽度为6英寸
fig.height=6 图片高度为6英寸[2]
fig.align="····" 设置图片对齐(’center’、’left’、’right’)
fig.cap="····" 设置图标题。
fig.show=‘hold’ 多幅图并列显示

[1]: 参数为百分数形成的字符串。
[2]: 长宽的绝对值,单位为英寸。

10. 表格格式设置

  1. 普通的data.frame可以用knitr::kable(align= , )函数展示。
  • align参数设置对齐,“l”为左对齐,“c”为居中,“r”为右对齐。也可以用长度等于列数的向量来设置每一列的对齐方式。
  • digits参数控制小数点位数,相当于给每一个数值传入round函数。- - caption给出表标题。下面为一个例子。

knitr::kable(head(iris), align=“c”)

  1. 如果是tibble格式,在某些格式设置(如html_document中)下可直接输出。

library(tidyverse)
as_tibble(head(iris))

7. 交互式图表

改变每页显示的行数、按某一列进行排序、多页之间进行跳转、搜索表格中你想要的数据。

library(DT)
datatable(iris, options = list(pageLength = 5))

得到的效果如下:

交互式图

例一:

library(dygraphs)
dygraph(nhtemp, main = “New Haven Temperatures”) %>%
dyRangeSelector(dateWindow = c(“1920-01-01”, “1960-01-01”))

得到效果如下:

例二:

library(plotly)
p <- ggplot(data = diamonds, aes(x = cut, fill = clarity)) +
geom_bar(position = “dodge”)
ggplotly§

得到效果如下:

例三:网络图

library(visNetwork)
nodes <- data.frame(id = 1:6, title = paste(“node”, 1:6),
shape = c(“dot”, “square”),
size = 10:15, color = c(“blue”, “red”))
edges <- data.frame(from = 1:5, to = c(5, 4, 6, 3, 3))
visNetwork(nodes, edges) %>%
visOptions(highlightNearest = TRUE, nodesIdSelection = TRUE)

得到效果如下

例五:3维挺newbeer的可以通过鼠标拖动并改变大小的图
(例四为heatmap,忽略)

library(threejs)
z <- seq(-10, 10, 0.1)
x <- cos(z)
y <- sin(z)
scatterplot3js(x, y, z, color=rainbow(length(z)))

例六:可交互式地图

可玩度比较高,搭配度分秒转化函数(jd()函数)可以根据已知经纬度进行定位,并在地图上呈现出来。

library(leaflet)
m <- leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addMarkers(lng=174.768, lat=-36.852, popup=“The birthplace of R”)
m

###度角分转化为小数函数
jd <- function(a,b,c){m <- a+b/60+c/3600return(m)
}
### result
> longitude<- jd(116,23,26.93)
> latitude <- jd(39,54,56.92)
> Imperial_Palace <- leaflet() %>%
+   addTiles() %>%  # Add default OpenStreetMap map tiles
+   addMarkers(lng= longitude, lat=latitude, popup="The gu palace")
> Imperial_Palace

效果:

7. gif图呈现

将一系列数据图转化为gif

R markdown的笔记02相关推荐

  1. R Markdown 使用方法笔记

    记录一些R Markdown中与一般的Markdown不同的用法. 1.代码块设置 echo=FALSE最终的文档中不会显示代码,只会显示代码运行的结果和图像 results="hide&q ...

  2. R语言学习笔记(三)多元数据的数据特征、相关分析与图形表示

    文章目录 写在前面 独立性检验 χ2\chi^2χ2独立性检验 Fisher独立性检验 Cochran-Mantel-Haenszel χ2\chi^2χ2独立性检验 相关性分析 相关性检验 相关性检 ...

  3. R语言实战笔记--第四五章 数据管理

    R语言实战笔记–第四&五章 数据管理 标签(空格分隔): R语言 第四.第五章都是说的数据管理,合并在一起做个总结,在个人看来,数据管理是一件非常繁琐的事情,但是,每个统计的前提都是一个合适的 ...

  4. JavaWeb黑马旅游网-学习笔记02【注册功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  5. JavaWeb-综合案例(用户信息)-学习笔记02【登录功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...

  6. MySQL学习笔记02【SQL基本概念与通用语法、数据库的CRUD操作】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  7. Information Retrieval(信息检索)笔记02:Preprocessing and Tolerant Retrieval

    Information Retrieval(信息检索)笔记02:Preprocessing and Tolerant Retrieval 预处理(Preprocessing) 文档分析及编码转换(Pa ...

  8. 计算机网络自顶向下方法笔记02

    <计算机网络自顶向下方法>学习笔记02:运输层. 运输层介于应用层与网络层之间,为应用层提供了直接的通信服务.在应用层时已经介绍了两种运输层协议UDP和TCP,本章主要介绍这两个协议和运输 ...

  9. 推荐系统实践读书笔记-02利用用户行为数据

    推荐系统实践读书笔记-02利用用户行为数据 为了让推荐结果符合用户口味,我们需要深入了解用户.如何才能了解一个人呢?<论语·公冶长>中说"听其言,观其行",也就是说可以 ...

最新文章

  1. 【Charles】Breakpoint 断点
  2. Docker知识2:安装docker-desktop
  3. linux安装教程 ce,docker CE安装教程
  4. php与java的关系_PHP基本语法以及和Java的区别
  5. 简述java规范要注意哪些问题_JAVA学习:JAVA基础面试题(经典)
  6. java学习(17):巩固练习
  7. C#LeetCode刷题之#7-反转整数(Reverse Integer)
  8. 用封装的栈回溯类捕获段错误
  9. 4.1 API : MultinomialNB、GaussianNB、BernoulliNB
  10. 关于“绞刑架和职业发展”问题带来的思考
  11. 数字图像处理吴娱课后答案_(完整版)数字图像处理每章课后题参考答案
  12. 字符编码集与ASCII码表
  13. h5让图片转圈的动效,让页面动起来
  14. 文心一言 vs GPT-4,百度背水一战交卷
  15. linux 入门 及一些常用命令及常用软件安装
  16. 5G精华问答 | 什么是5G?5G与LTE有什么关系?
  17. excel技巧:满足多个条件分项汇总求和
  18. TCHAR char
  19. Redis安装与使用
  20. python100到200的素数_python 100~200的素数和

热门文章

  1. 【Linux】之systemd与systemctl
  2. 100集华为HCIE安全培训视频教材整理 | Agile Controller终端安全管理特性(四)
  3. bootstrap使用及解析
  4. 程序设计课程设计报告(学生成绩管理系统)
  5. 实用有效!React项目中使用watermark.js添加水印效果
  6. Linux 管理联网 nmcli常用命令
  7. ST_Geometry 的关系函数
  8. 数据处理方法-算术编码(香农算法、java编码实现)
  9. PC端查看WiFi密码
  10. [网盘工具/百度网盘]秒传链接的使用 -2022版油猴网页脚本