pander学习
1.pander包是什么
pander这个包提供了一系列的函数可以从多个类型的R对象自动地返回Pandoc's
markdown 。这个包就是用R操作的pandoc。
也可以按照三种方式输出/转化Pandoc文档:
(1)按某种方式生成markdown文档,用Pandoc.convert转化为HTML,
odt, pdf, docx 等。
(2)可以用brew包的语法写报告来生成pandoc文档(其中R对象可以生成格式化表格或列表等形式),也可以自动生成一大票其它的格式(HTML,
odt, pdf, docx etc)(3)用户能用在活动的R片段里加入R对象或者段落的方式创建报告到Pandoc参考类对象(R5对象)
尽管很多函数的运行并不依赖pandoc,还是预先安装为好。
2.pander包可以做什么
(1)简单的功能 一系列以Pandoc.开头的函数,可以完成一些基本的pandoc操作。
library(pander)
pandoc.image("mcmc11.jpg", "density plot")
pandoc.image("mcmc11.jpg", "density plot")
##
![density plot](mcmc11.jpg)
pandoc.footnote("这好像真的是显然的")
##
^[这好像真的是显然的]
(2)列表
l
<-
list("a",
c("e",
"r"),
"b",
c("A",
"D"))
pandoc.list(l, "roman")
pandoc.list(l, "roman")
##
## I. a
## I. e
## II. r
## II. b
## I. A
## II. D
##
## <!-- end of list -->
## I. a
## I. e
## II. r
## II. b
## I. A
## II. D
##
## <!-- end of list -->
(3)表格
可以实现pandoc所支持的4种形式,针对R的data
frame, matrix 或者 table 多线形式(
multiline format),simple
tables,grid format,rmarkdown tables,这个表的形式可以直接knitr
d
<-
data.frame(name
=
c("张三",
"李四"),
age
=
c(20,
21),
employed
=
factor(c("Y",
"N")))
pandoc.table(d)
"N")))
pandoc.table(d)
##
## -----------------------
## name age employed
## ------ ----- ----------
## 张三 20 Y
##
## 李四 21 N
## -----------------------
## -----------------------
## name age employed
## ------ ----- ----------
## 张三 20 Y
##
## 李四 21 N
## -----------------------
#
simple tables
pandoc.table(d, style = "simple")
pandoc.table(d, style = "simple")
##
##
## name age employed
## ------ ----- ----------
## 张三 20 Y
## 李四 21 N
##
## name age employed
## ------ ----- ----------
## 张三 20 Y
## 李四 21 N
#
grid format
pandoc.table(d, style = "grid")
pandoc.table(d, style = "grid")
##
##
## +--------+-------+------------+
## | name | age | employed |
## +========+=======+============+
## | 张三 | 20 | Y |
## +--------+-------+------------+
## | 李四 | 21 | N |
## +--------+-------+------------+
##
## +--------+-------+------------+
## | name | age | employed |
## +========+=======+============+
## | 张三 | 20 | Y |
## +--------+-------+------------+
## | 李四 | 21 | N |
## +--------+-------+------------+
#
rmarkdown tables
pandoc.table(d, style = "rmarkdown")
pandoc.table(d, style = "rmarkdown")
##
##
## | name | age | employed |
## |:------:|:-----:|:----------:|
## | 张三 | 20 | Y |
## | 李四 | 21 | N |
##
## | name | age | employed |
## |:------:|:-----:|:----------:|
## | 张三 | 20 | Y |
## | 李四 | 21 | N |
#还有很多其它参数帮助制作更好的表格。比如,加标题Caption(不过只能输出到表的下端)
pandoc.table(d, style = "rmarkdown", caption = "survey")
pandoc.table(d, style = "rmarkdown", caption = "survey")
##
##
## | name | age | employed |
## |:------:|:-----:|:----------:|
## | 张三 | 20 | Y |
## | 李四 | 21 | N |
##
## Table: survey
##
## | name | age | employed |
## |:------:|:-----:|:----------:|
## | 张三 | 20 | Y |
## | 李四 | 21 | N |
##
## Table: survey
#
用set.caption函数
set.caption("survey")
pandoc.table(d, style = "rmarkdown")
set.caption("survey")
pandoc.table(d, style = "rmarkdown")
##
##
## | name | age | employed |
## |:------:|:-----:|:----------:|
## | 张三 | 20 | Y |
## | 李四 | 21 | N |
##
## Table: survey
##
## | name | age | employed |
## |:------:|:-----:|:----------:|
## | 张三 | 20 | Y |
## | 李四 | 21 | N |
##
## Table: survey
(4)一般化pandoc方法
pander可以把很多R对象转化为pandocized的S3对象类
pander(prcomp(iris[,
1:4]))
Principal Components Analysis
|
PC1
|
PC2
|
PC3
|
PC4
|
Sepal.Length
|
0.3614
|
-0.6566
|
0.582
|
0.3155
|
Sepal.Width
|
-0.08452
|
-0.7302
|
-0.5979
|
-0.3197
|
Petal.Length
|
0.8567
|
0.1734
|
-0.07624
|
-0.4798
|
Petal.Width
|
0.3583
|
0.07548
|
-0.5458
|
0.7537
|
pander(head(iris))
Sepal.Length
|
Sepal.Width
|
Petal.Length
|
Petal.Width
|
Species
|
5.1
|
3.5
|
1.4
|
0.2
|
setosa
|
4.9
|
3
|
1.4
|
0.2
|
setosa
|
4.7
|
3.2
|
1.3
|
0.2
|
setosa
|
4.6
|
3.1
|
1.5
|
0.2
|
setosa
|
5
|
3.6
|
1.4
|
0.2
|
setosa
|
5.4
|
3.9
|
1.7
|
0.4
|
setosa
|
##
not to split tables
panderOptions('table.split.table', Inf)
## iris still rocks
pander(head(iris))
panderOptions('table.split.table', Inf)
## iris still rocks
pander(head(iris))
Sepal.Length
|
Sepal.Width
|
Petal.Length
|
Petal.Width
|
Species
|
5.1
|
3.5
|
1.4
|
0.2
|
setosa
|
4.9
|
3
|
1.4
|
0.2
|
setosa
|
4.7
|
3.2
|
1.3
|
0.2
|
setosa
|
4.6
|
3.1
|
1.5
|
0.2
|
setosa
|
5
|
3.6
|
1.4
|
0.2
|
setosa
|
5.4
|
3.9
|
1.7
|
0.4
|
setosa
|
panderOptions('knitr.auto.asis',
FALSE)
pander(head(iris))
pander(head(iris))
##
## -------------------------------------------------------------------
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## -------------- ------------- -------------- ------------- ---------
## 5.1 3.5 1.4 0.2 setosa
##
## 4.9 3 1.4 0.2 setosa
##
## 4.7 3.2 1.3 0.2 setosa
##
## 4.6 3.1 1.5 0.2 setosa
##
## 5 3.6 1.4 0.2 setosa
##
## 5.4 3.9 1.7 0.4 setosa
## -------------------------------------------------------------------
## -------------------------------------------------------------------
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## -------------- ------------- -------------- ------------- ---------
## 5.1 3.5 1.4 0.2 setosa
##
## 4.9 3 1.4 0.2 setosa
##
## 4.7 3.2 1.3 0.2 setosa
##
## 4.6 3.1 1.5 0.2 setosa
##
## 5 3.6 1.4 0.2 setosa
##
## 5.4 3.9 1.7 0.4 setosa
## -------------------------------------------------------------------
pander(head(iris))
Sepal.Length
|
Sepal.Width
|
Petal.Length
|
Petal.Width
|
Species
|
5.1
|
3.5
|
1.4
|
0.2
|
setosa
|
4.9
|
3
|
1.4
|
0.2
|
setosa
|
4.7
|
3.2
|
1.3
|
0.2
|
setosa
|
4.6
|
3.1
|
1.5
|
0.2
|
setosa
|
5
|
3.6
|
1.4
|
0.2
|
setosa
|
5.4
|
3.9
|
1.7
|
0.4
|
setosa
|
library(knitr)
kable(head(iris), format = "markdown")
kable(head(iris), format = "markdown")
Sepal.Length
|
Sepal.Width
|
Petal.Length
|
Petal.Width
|
Species
|
5.1
|
3.5
|
1.4
|
0.2
|
setosa
|
4.9
|
3.0
|
1.4
|
0.2
|
setosa
|
4.7
|
3.2
|
1.3
|
0.2
|
setosa
|
4.6
|
3.1
|
1.5
|
0.2
|
setosa
|
5.0
|
3.6
|
1.4
|
0.2
|
setosa
|
5.4
|
3.9
|
1.7
|
0.4
|
setosa
|
library("knitr","xtable")
kable(head(iris),format="markdown")
kable(head(iris),format="markdown")
Sepal.Length
|
Sepal.Width
|
Petal.Length
|
Petal.Width
|
Species
|
5.1
|
3.5
|
1.4
|
0.2
|
setosa
|
4.9
|
3.0
|
1.4
|
0.2
|
setosa
|
4.7
|
3.2
|
1.3
|
0.2
|
setosa
|
4.6
|
3.1
|
1.5
|
0.2
|
setosa
|
5.0
|
3.6
|
1.4
|
0.2
|
setosa
|
5.4
|
3.9
|
1.7
|
0.4
|
setosa
|
kable(head(iris),format="pandoc",caption="Title
of the table")
Title of the table
Sepal.Length
|
Sepal.Width
|
Petal.Length
|
Petal.Width
|
Species
|
5.1
|
3.5
|
1.4
|
0.2
|
setosa
|
4.9
|
3.0
|
1.4
|
0.2
|
setosa
|
4.7
|
3.2
|
1.3
|
0.2
|
setosa
|
4.6
|
3.1
|
1.5
|
0.2
|
setosa
|
5.0
|
3.6
|
1.4
|
0.2
|
setosa
|
5.4
|
3.9
|
1.7
|
0.4
|
setosa
|
format="pandoc"允许更多选项,如标题。
评论
发表评论