Inserisci foto / tabella in R Markdown


132

Quindi voglio inserire una tabella E un'immagine in R Markdown. Nel normale documento di parole posso semplicemente inserire una tabella (5 righe per 2 colonne), e per l'immagine basta copiare e incollare.

  1. Come posso inserire una tabella a 5 righe per 2 colonne (e anche digitare elementi in esse) (e anche regolare la tabella in termini di larghezza della seconda colonna rispetto alla prima)?

  2. Come inserisco un'immagine? Da quanto ho capito, dovrei prima salvare l'immagine come png, quindi fare riferimento nel mio documento. Inoltre, voglio adattare automaticamente l'immagine al rapporto, come se non occupassi più di una pagina o meno di una pagina (c'è un modo per me di regolare le dimensioni dell'immagine a mio piacimento)?

  3. Se qualcuno sa qualcosa di interessante / formattazione su R Markdown potresti farmelo sapere? So che #rende un grande titolo per un paragrafo e ** **audace cose. Questo è tutto ciò che so però!


Ho scoperto come aggiungere tabelle! Mi chiedo ancora delle foto ._.
user3784616

Risposte:


152

Diversi siti forniscono cheat sheet o HOWTO ragionevoli per tabelle e immagini. In cima alla mia lista ci sono:

Le immagini sono molto semplici da usare ma non offrono la possibilità di regolare l'immagine per adattarla alla pagina (vedere Aggiornamento , di seguito). Per regolare le proprietà dell'immagine (dimensioni, risoluzione, colori, bordo, ecc.), Avrai bisogno di una forma di editor di immagini. Trovo di poter fare tutto ciò di cui ho bisogno con uno di ImageMagick , GIMP o InkScape , tutto gratuito e open source.

Per aggiungere un'immagine, utilizzare:

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

So che pandoc supporta PNG e JPG, che dovrebbero soddisfare la maggior parte delle tue esigenze.

Hai il controllo sulla dimensione dell'immagine se la stai creando in R (ad esempio, una trama). Questo può essere fatto direttamente nel comando per creare l'immagine o, ancora meglio, tramite le opzioni se stai usando knitr (altamente raccomandato ... controlla le opzioni di blocco , in particolare sotto Trame).

Consiglio vivamente di esaminare questi tutorial; markdown è molto utile e ha molte funzionalità che la maggior parte delle persone non usa su base regolare ma piace molto una volta che l'hanno imparato. (SO non è necessariamente il posto migliore per porre domande a cui si risponde molto direttamente in questi tutorial.)


Aggiornamento, 2019-ago-31

Qualche tempo fa, pandocho incorporato "link_attributes" per le immagini (apparentemente nel 2015, con commit jgm / pandoc # 244cd56 ). Il "ridimensionamento delle immagini" può essere eseguito direttamente. Per esempio:

![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%}

Le dimensioni possono essere forniti senza unità (pixel assunti), o con " , , , e "pxcmmmininch% (ref: https://pandoc.org/MANUAL.html , cercare link_attributes).

(Non sono sicuro che CommonMark abbia implementato questo, sebbene ci sia stata una lunga discussione .)


Se stai ancora leggendo questo, sull'immagine. Posso aprire nuovamente il file Rmarkdown su un altro computer senza l'immagine? L'immagine è permanente dopo averla aggiunta a R? Altrimenti come renderlo permanente
user3784616

3
Il file non è permanente all'interno del .Rmdfile. Se lo "compili" (usando pandoc) in HTML, l'aggiunta --self-containedcodificherà l'immagine nel file html. I file PDF e Word lo avranno come parte del file, quindi non sarà necessario includere il file PNG effettivo quando lo si invia. I file rmd, tuttavia, richiedevano l'inclusione manuale del file immagine.
r2evans,

Come funziona..? Non riesco nemmeno ad aggiungere l'immagine .. Quindi, in pratica, l'immagine si chiama "Tassi di occupazione" ed è in una cartella di file chiamata "Riepilogo". Il percorso del file è C: \ Users \ Paul \ Desktop \ Summary. Quindi il codice che ho scritto è! [Tassi di occupazione.] (C: /Users/Paul/Desktop.Summary.png) e non funziona
user3784616

puoi darmi un esempio di come usare il contenuto autonomo? Quindi, quando lo salvo come una parola doc, l'immagine sarà permanente? Sono ancora un po 'confuso
user3784616

Meglio ancora, usarlo all'interno dell'intestazione YAML di Rmd è più diretto (e apparentemente predefinito). Ecco il riferimento: rmarkdown su rstudio . Oltre 1/3 della discesa è una sezione su "Dipendenze del documento" che ne parla.
r2evans,

87

Aggiornamento : dalla risposta di @ r2evans, è molto più facile inserire le immagini in Markdown R e controllare le dimensioni dell'immagine.

immagini

Il libro bookdown fa un ottimo lavoro nel spiegare che il modo migliore per includere le immagini è usare include_graphics(). Ad esempio, un'immagine a larghezza intera può essere stampata con una didascalia di seguito:

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

Il motivo per cui questo metodo è migliore dell'approccio pandoc ![your image](path/to/image):

  • Cambia automaticamente il comando in base al formato di output (HTML / PDF / Word)
  • La stessa sintassi può essere utilizzata per la dimensione del grafico ( fig.width), la larghezza di output nel report ( out.width), aggiungere didascalie ( fig.cap) ecc.
  • Utilizza i migliori dispositivi grafici per l'output. Ciò significa che le immagini PDF rimangono ad alta risoluzione.

tabelle

knitr::kable()è il modo migliore per includere le tabelle in un rapporto Markdown R, come spiegato in dettaglio qui . Ancora una volta, questa funzione è intelligente nella selezione automatica della formattazione corretta per l'output selezionato.

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

Se vuoi creare le tue semplici tabelle in R Markdown e stai usando R Studio, puoi dare un'occhiata al insert_table pacchetto . Fornisce un'interfaccia grafica ordinata per creare tabelle.

Il raggiungimento dello stile personalizzato della larghezza della colonna della tabella va oltre lo scopo di knitr, ma il kableExtrapacchetto è stato scritto per aiutare a raggiungere questo obiettivo: https://cran.r-project.org/web/packages/kableExtra/index.html

Consigli di stile

Il cheat sheet di R Markdown è ancora il posto migliore per conoscere la maggior parte della sintassi di base che puoi usare.

Se stai cercando potenziali estensioni per la formattazione, bookdownvale la pena esplorare anche il pacchetto. Offre la possibilità di fare riferimenti incrociati, creare intestazioni speciali e altro ancora: https://bookdown.org/yihui/bookdown/markdown-extensions-by-bookdown.html


Ottima soluzione!
Marcus Nunes,

Sai come bloccare la posizione dell'immagine in atto? In questo momento è molto difficile prevedere dove apparirà quando lo compilerò.
Wolfsatthedoor,

1
Stavo lottando con il ![image caption](\path\to\image.png)tentativo di inserire un'immagine in R Markdown reso .docx, ma ho fallito misteriosamente, fino a quando non ho visto la tua knitr::include_graphics()soluzione oggi. Grazie mille!
elarry,

5

Quando si tratta di inserire un'immagine, il suggerimento di r2evans ![Caption for the picture.](/path/to/image.png)può essere problematico se è richiesto l'output PDF.

La funzione knitr include_graphics knitr::include_graphics('/path/to/image.png') è un'alternativa più portatile che genererà, a tuo nome, il markdown più appropriato al formato di output che stai generando.


Curioso ... perché è ![caption](path/to/image.png)problematico l'uso dell'output PDF? Forse questa risposta è obsoleta (come era la mia risposta originale), ma lo sto usando nell'output PDF da almeno un paio d'anni.
r2evans

4

A marzo ho fatto una presentazione del mazzo in slidify, Rmarkdown con impress.js che è un fantastico framework 3D. la mia index.Rmdintestazione sembra

---
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

i sottodir sono:

/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

una diapositiva con immagine nello snippet di codice in background sarebbe nel mio .Rmd:

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

Alcuni problemi sono apparsi dall'ultima volta che ci ho lavorato (le foto non sono più in background, testo troppo grande sulla mia trama R) ma funziona bene sul mio locale. I problemi arrivano quando lo eseguo su RPubs.


2
Se hai una nuova domanda, chiedila facendo clic sul pulsante Poni domanda . Includi un link a questa domanda se aiuta a fornire un contesto.
Jaap,

8
questa non era una domanda, questa era una risposta :-)
brigasnuncamais,

2
Il primo collegamento è interrotto.
daknowles,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.