Вставить рисунок/таблицу в R Markdown

Поэтому я хочу вставить таблицу AND a picture в R Markdown. В обычном текстовом документе я могу просто вставить таблицу (5 строк по 2 столбца), а для изображения просто скопировать и вставить.

  1. Как вставить таблицу из 5 строк по 2 столбца (а также ввести в них материал) (а также отрегулировать таблицу в терминах второго столбца, который будет шире первого)?

  2. Как вставить картинку? По моему мнению, я должен сначала сохранить изображение как png, а затем ссылаться на него в своем документе. Кроме того, я хочу автоматически настроить изображение в отчете, например, не занимать больше страницы или меньше страницы. (Есть ли способ настроить размер изображения по своему вкусу)?

  3. Если кто-нибудь знает что-нибудь классное/форматирование о R Markdown, можете ли вы также сообщить мне об этом? Я знаю, что # делает большой заголовок для абзаца и ** ** держит вещи. Thats обо всем, что я знаю, хотя!

Ответ 1

Несколько сайтов предоставляют разумные шпаргалки или HOWTO для таблиц и изображений. Лучшие в моем списке:

Изображения очень просты в использовании, но не дают возможности настроить изображение по размеру страницы (см. Обновление ниже). Чтобы настроить свойства изображения (размер, разрешение, цвета, границы и т.д.), Вам понадобится редактор изображений. Я считаю, что могу делать все, что мне нужно, с одним из ImageMagick, GIMP или InkScape, все с бесплатным и открытым исходным кодом.

Чтобы добавить изображение, используйте:

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

Я знаю, что pandoc поддерживает PNG и JPG, которые должны удовлетворить большинство ваших потребностей.

У вас есть контроль над размером изображения, если вы создаете его в R (например, график). Это можно сделать либо непосредственно в команде для создания изображения, либо, что еще лучше, с помощью параметров, если вы используете knitr (настоятельно рекомендуется... ознакомьтесь с параметрами блока, особенно в разделе Участок).

Я настоятельно рекомендую просмотреть эти учебники; Уценка очень удобна и имеет много функций, которые большинство людей не используют на регулярной основе, но очень нравится, когда они изучают ее. (SO не обязательно является лучшим местом для того, чтобы задавать вопросы, на которые очень прямо отвечают в этих уроках.)


Обновление, 2019-31 августа

Некоторое время назад pandoc включил "link_attributes" для изображений (по-видимому, в 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%}

Размеры могут быть указаны без единиц измерения (предполагаемые пиксели) или с "px, cm, mm, in, inch и %" (ref: https://pandoc.org/MANUAL.html, искать link_attributes).

(Я не уверен, что CommonMark реализовал это, хотя было продолжительное обсуждение.)

Ответ 2

Обновление: с момента ответа от @r2evans гораздо проще вставлять изображения в R Markdown и контролировать размер изображения.

Изображений

Книга bookdown отлично справляется с тем, что лучший способ включить изображения - с помощью 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 этого был kableExtra пакет kableExtra: https://cran.r-project.org/web/packages/kableExtra/index.html

Советы по стилю

Титульный лист R Markdown по-прежнему является лучшим местом для изучения большинства базовых синтаксисов, которые вы можете использовать.

Если вы ищете потенциальные расширения для форматирования, пакет bookdown также стоит изучить. Он предоставляет возможность перекрестной ссылки, создавать специальные заголовки и многое другое: https://bookdown.org/yihui/bookdown/markdown-extensions-by-bookdown.html

Ответ 3

Когда дело доходит до вставки изображения, предложение r2evans ![Caption for the picture.](/path/to/image.png) может быть проблематичным, если требуется вывод в формате PDF.

Функция knitr include_graphics knitr::include_graphics('/path/to/image.png') - более портативная альтернатива от вашего имени будет создана уценка, наиболее подходящая для выходного формата, который вы генерируете.

Ответ 4

В марте я сделал палубу презентация в slidify, Rmarkdown с impress.js, который является классной 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

слайд с изображением в фрагменте кода фона будет в моем .Rmd:

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

Некоторые проблемы появились с тех пор, как я в последний раз работал над ним (фотографии больше не в фоновом режиме, текст слишком большой на моем графике R), но он отлично работает на моем локальном компьютере. Сбой возникает, когда я запускаю его на RPubs.