您的位置:首页 > 其它

R Markdown 使用方法笔记

2017-12-26 11:32 239 查看
记录一些R Markdown中与一般的Markdown不同的用法。

1.代码块设置

echo=FALSE
最终的文档中不会显示代码,只会显示代码运行的结果和图像

results="hide"
隐藏结果,显示图像

include=FALSE
隐藏代码和运行的输出(写报告时可使用
include=FALSE
来隐藏所有的代码,从而突出图像。)

fig.show="hide"
隐藏图像

对于图像,可以通过
fig.width
fig.height
来设置宽和高,举例:

```{r scatterplot, fig.width=8, fig.height=6}
plot(x,y)


使用
include=FALSE
隐藏所有的代码、结果和图像,同时使用
include=TRUE
results="hide"
则会隐藏结果显示图像

eval=FALSE
显示代码而不显示运行结果

表格输出设置:

```{r, results='asis'}
knitr::kable(mtcars)


2.全局代码块设置

避免每次使用代码块都重复敲代码来设置代码块,可按如下设置初始代码块:

```{r global_options, include=FALSE}
knitr::opts_chunk$set(fig.width=12, fig.height=8, fig.path='Figs/',
echo=FALSE, warning=FALSE, message=FALSE)


warning=FALSE
message=FALSE
最终文档中不会显示R软件任何的提示信息,
fig.path='Figs/'
把图片保存在Figs子文件夹中(默认情况下图片不会被保存,注意Figs后面的斜线“/”不可少,否则图片会以Figs为文件名开头被保存在主目录中)。

如果在某个特定代码块中需要不一样的设置,可以单独设置该代码块,如:

```{r a_taller_figure, fig.height=32}
par(mfrow=c(8,2))
for(i in 1:16)
plot(x[,i], y[,i])


在给合作者的报告中,可能会使用
include=FALSE, echo=FALSE
作为全局设置,生成图像时使用
include=TRUE
,这样可以只输出图像。

3.行内代码(In-line code)

在报告中不要写成“There are 168 individuals.” 可以插入一点代码,比如:

There are `r nrow(my_data)` individuals.


又比如:

The estimated correlation between x and y was `r cor(x,y)`.


在R Markdown中,行内代码以
`r 和
`来表示,两者间的代码会运行并显示结果。

注意:要确保行内代码没有跨行。

4.YAML header

YAML 是一种用于指定数据的简洁的文本格式, 与JSON有些类似但可读性更强。

在R Markdown文档开头,编写如下一段代码:

---
title: "An example Knitr/R Markdown document"
author: "Karl Broman"
date: "3 Feb 2015"
output: html_document
---


那么,文档的结尾会包含格式化的标题、作者名和日期。

author: "[Karl Broman](http://kbroman.org)"


甚至是R代码:

date: "`r Sys.Date()`"


output: html_document
将RMD转化为html,
pdf_document
或者
word_document
分别转为PDF和Word .docx文件。

5.其他关于代码块设置的代码问题

必须写在一行内,不含空格和句点,可以使用-和_

fig.path="abc"
而不是
fig.path=abc
, and
out.width='\\textwidth'
而不是
out.width=\textwidth


使用TRUE/FALSE 而不是true/false

[参考文献]:

1. http://kbroman.org/knitr_knutshell/pages/Rmarkdown.html

2. https://yihui.name/knitr/options/#package_options

3. http://rmarkdown.rstudio.com/authoring_rcodechunks.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: