Options of Code Chunks

knitr提供了近60个参数选项用于自定义chunk的输出

通过以下网址可以查看全部的options:http://yihui.name/knitr/options/.

这里展示比较常用的重要的options

x<-runif(10)
y<-runif(10)
x
>  [1] 0.62342719 0.99018785 0.14581361 0.47772557 0.05882587 0.98083123
>  [7] 0.35680228 0.80947740 0.27125853 0.93749681
plot(x,y,type="l")

说明

Table

默认情况下数据框输出跟在console的输出格式一样,使用kable函数可以输出表格格式

mtcars[1:5,1:10]
>                    mpg cyl disp  hp drat    wt  qsec vs am gear
> Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4
> Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4
> Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4
> Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3
> Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3
knitr::kable(mtcars[1:5,1:10],
             caption = "A knitr table")
A knitr table
mpg cyl disp hp drat wt qsec vs am gear
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3

说明

Caching

为了实现可再现性,所有的输出内容都是从空白页面开始构建,以确保代码里包含所有重要信息。

但是当代码块里面有计算量较大的指令,那就需要用到缓存:定义cache=TRUE。 设置缓存时,计算结果会保存到特定文件,下一次执行时,如果代码块没有改变,则引用该缓存文件。

rawdata<-readr::read_csv("a_very_large_file.csv")

注意例子只是样本代码,设置了eval=FAlSE,不执行

processing the terribly large data

此处注意,如果没有定义dependson=“raw_data”,那么即使读取的csv文件改变了, 只要‘processing’没有改变,仍然不会重新执行该代码块,而是直接使用缓存。

如果担心“a_very_large_file.csv”文件内容本身发生改变,导致后续的代码使用缓存而出错,可以在 raw_data代码块增加cache.extra=file.info(“file_name”)这样可以检查文件的相关信息,包括最后一次 修改的时间。

knitr::clean_cache()

使用上述指令可以清除所有的缓存(当缓存的文件越来越复杂混乱的时候)

Global Options

关于全局设置的内容在第五部分的script中出现

Inline Code

直接在文本中间引用并嵌入R代码,knit之后以执行结果的形式显示

For example,we have data about 53940 diamonds.

在文本中嵌入数字的时候,最好设置精确度,以及在大数中插入逗号(使用format函数)

a<-1234567
format(a,big.mark = ",")
> [1] "1,234,567"
b<-0.1234567
format(b,digits = 2)
> [1] "0.12"