在 R 标记中插入图片/表格

所以我想在 R 标记中插入一张表和一张图片。在普通的 word 文档中,我可以很容易地插入一个表(5行2列) ,对于图片只需复制和粘贴。

  1. 我如何插入一个5行2列的表格(并且在表格中输入内容)(并且根据第二列比第一列宽的情况来调整表格) ?

  2. 如何插入图片?根据我的理解,我应该首先将图片保存为 png,然后将其引用到文档中。此外,我想自动调整图片的报告,如不采取超过一页,或少于一页。(有没有什么方法可以让我调整图片的大小,使之符合我的喜好?)?

  3. 如果有人知道任何关于 R Markdown 的酷/格式,你也可以告诉我吗?我知道 #是一个段落的大标题,而 ** **是加粗的。我只知道这么多!

365066 次浏览

一些网站为表格和图片提供了合理的备忘单或者 HOWTO:

图片使用起来非常简单,但是没有提供调整图片以适应页面的能力(参见下面的 更新)。要调整图像属性(大小、分辨率、颜色、边框等) ,需要某种形式的图像编辑器。我发现我可以做一切我需要与 图像魔术GIMP,或 墨景之一,所有免费和开放源码。

要添加图片,请使用:

![Caption for the picture.](/path/to/image.png)

我知道 pandoc 支持 PNG 和 JPG,这应该可以满足您的大部分需求。

如果您在 R 中创建图像(例如,一个情节) ,那么您确实可以控制图像的大小。这可以直接在命令中创建图像,如果您使用的是 毛衣(强烈推荐... 查看 大块期权,特别是在 Plot 下) ,则可以通过选项进行更好的创建。

我强烈建议您仔细阅读这些教程; Markdown 非常方便,并且有许多大多数人不经常使用的特性,但是一旦他们学会了,他们就会非常喜欢。(在这些教程中,提出直接回答的问题并不一定是最好的地方。)


2019年8月31日更新

不久前,pandoc为图像添加了“ link _ properties”(显然是在2015年,使用了提交 Jgm/pandoc # 244cd56)。“调整图像大小”可以直接完成。例如:

![unchanged image](foo.jpg)
![much-smaller image](foo.jpg){#id .class width=30 height=20px}
![half-size image](foo.jpg){#id .class width=50% height=50%}

尺寸可以提供没有单位(像素假设) ,或与 ABC0,ABC1,ABC2,ABC3,ABC4和 %(参考文献: https://pandoc.org/MANUAL.html,搜索 link_attributes)。

(虽然有一个 漫长的讨论,但我不确定 Common Mark 是否已经实现了这一点。)

在三月份我做了一个甲板 展示在滑动,降价与 印象深刻这是一个很酷的3D 框架。我的 index.Rmd头文件看起来像

---
title       : French TER (regional train) monthly regularity
subtitle    : since January 2013
author      : brigasnuncamais
job         : Business Intelligence / Data Scientist consultant
framework   : impressjs     # {io2012, html5slides, shower, dzslides, ...}
highlighter : highlight.js  # {highlight.js, prettify, highlight}
hitheme     : tomorrow      #
widgets     : []            # {mathjax, quiz, bootstrap}
mode        : selfcontained # {standalone, draft}
knit        : slidify::knit2slides

子目录包括:

/assets /css    /impress-demo.css
/fig    /unnamed-chunk-1-1.png (generated by included R code)
/img    /SS850452.png (my image used as background)
/js     /impress.js
/layouts/custbg.html # content:--- layout: slide --- \{\{{ slide.html }}}
/libraries  /frameworks /impressjs
/io2012
/highlighters   /highlight.js
/impress.js
index.Rmd

背景代码片段中包含图片的幻灯片将出现在 my.Rmd:

<div id="bg">
<img src="assets/img/SS850452.png" alt="">
</div>

一些问题出现,因为我最后一次工作(照片不再在背景中,文字它在我的 R 情节太大) ,但它在我的本地工作良好。我在 RPubs 上运行的时候麻烦就来了。

在插入图片时,如果需要 PDF 输出,r2evans 关于 ![Caption for the picture.](/path/to/image.png)的建议可能会有问题。

Rel = “ noReferrer”> include _ Graphics.html knitr::include_graphics('/path/to/image.png')是一种更便携的替代品 它将代表您生成最适合您正在生成的输出格式的标记。

更新 : 由于@r2evans 的回答,将图像插入 R Markdown 并控制图像的大小要容易得多。

图像

登记簿非常好地解释了包含图像的最佳方式是使用 include_graphics()。例如,全幅图像可以打印标题如下:

```{r pressure, echo=FALSE, fig.cap="A caption", out.width = '100%'}
knitr::include_graphics("temp.png")
```

这种方法优于 Pandoc 方法 ![your image](path/to/image)的原因是:

  • 它会根据输出格式(HTML/PDF/Word)自动更改命令
  • 同样的语法可以用于情节的大小(fig.width) ,报告中的输出宽度(out.width) ,添加标题(fig.cap)等。
  • 它使用最好的图形设备输出。这意味着 PDF 图像保持高分辨率。

桌子

knitr::kable()是在 R Markdown 报告中包含表格的最佳方式,详细解释了 给你。同样,这个函数智能地自动选择所选输出的正确格式。

```{r table}
knitr::kable(mtcars[1:5,, 1:5], caption = "A table caption")
```

如果您想在 R Markdown 中制作您自己的简单表并且使用 R Studio,您可以查看 insert_table 包裹。它为制作表提供了一个整洁的图形界面。

实现表列宽度的自定义样式超出了 knitr的范围,但是编写 kableExtra包是为了帮助实现这一点: https://cran.r-project.org/web/packages/kableExtra/index.html

时尚贴士

降价备忘单仍然是学习您可以使用的大多数基本语法的最佳地方。

如果您正在寻找格式的潜在扩展,那么 bookdown包也值得一探究竟。它提供了交叉引用、创建特殊标头等功能: https://bookdown.org/yihui/bookdown/markdown-extensions-by-bookdown.html