Crearea de documente cu quarto cu mai multe motoare cu mai multe motoare folosind codul scurt de încorporare al Quarto

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe R | Dr. Tom Palmerși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.

Introducere

Ați avut vreodată nevoie să prezentați codul și ieșirea pentru mai multe limbi din același document sau site -ul web? Lucrez în (boli non-infecțioase) epidemiologie și, prin urmare, este comun ca cercetătorii să prezinte codul R și Stata în același document. Cu toate acestea, un document quarto poate rula doar un singur motor. Există deja mai multe lucrări în jurul soluțiilor, care includ:

  • Scrierea diferitelor celule de cod lingvistice, dar făcându -le bucăți neevaluate/nu executate (acest lucru se face mult pe site -ul documentației Quarto). Se poate include, de asemenea, parcele salvate din diferite limbi;
  • Dacă documentul dvs. are o combinație de limbi din care puteți apela unul de la celălalt, cum ar fi utilizarea
    reticulează din interiorul r pentru a rula python sau folosind
    Statamarkdown din interiorul r la rularea Stata sau folosind
    Juliacall din interiorul R pentru a rula Julia, atunci acestea pot fi combinate într -un document de cvarto;
  • Sau pentru unele limbi precum R și Python, am putea chiar să încorporăm implementări complete webAssembling ale limbajului (respectiv Webr și Pyodide) într -o pagină web (care, cu siguranță, pare un pic excesiv pentru munca mea).

Am găsit o soluție alternativă care vă permite să utilizați motoarele native pentru fiecare limbă. De curând m -am împiedicat de codul scurt de încorporare al Quarto. Acest lucru permite un alt (sau celulele selectate de la un alt document de quarto) să fie încorporat într -un document quarto. Mi s -a întâmplat un gând, ce se întâmplă dacă documentul/s -a încorporat a folosit un alt motor? Ar funcționa asta? Acest lucru nu este menționat în mod explicit pe pagina de documentare, așa că am dat drumul. În mod remarcabil, răspunsul se dovedește a fi că funcționează! Să aflăm ce să facem.

Utilizarea codului scurt EMBED pentru a crea un document cu cvarto cu mai multe motoare efectiv

În exemplul de mai jos folosesc un tabset într -un document HTML folosind motorul KNITR. Am încorporat documentele folosind motoarele alternative pentru Python, Stata și Julia folosind {{< embed >}} Cod scurt, așa cum se arată mai jos. Pentru fiecare limbă, arată doar tipărirea unui șir și un complot de bază.

---
title: An effectively multi-engine Quarto document using the embed shortcode
format:
  html:
    embed-resources: true
engine: knitr
---

::: {.panel-tabset .nav-pills}
## R

```{r}
print("Hello World, from R")
```

```{r}
#| fig-align: "center"
x <- seq(-10,10, by = 0.1)
y <- x ^ 3
plot(x, y, type = "l")
```

## Python

{{< embed python-code-using-jupyter-python3-engine.qmd echo=true >}}

## Stata

{{< embed stata-code-using-jupyter-nbstata-engine.qmd echo=true >}}

## Julia

{{< embed julia-code-using-julia-engine.qmd echo=true >}}

:::

Desigur, presupun că ați configurat fiecare motor în prealabil.

Reducerea documentului quarto de mai sus are ca rezultat executarea și încorporată documentele încorporate în acesta. Am inclus ieșirea de mai jos (iar codul sursă complet este în acest depozit). Faceți clic pe filele pentru a afișa codul și ieșirea pentru fiecare limbă.

În codul de mai sus, în fiecare caz, am încorporat întregul document de cvarto, dar puteți specifica și un ID de bloc de cod specific (sau dacă documentul încorporat este un caiet Jupyter, .iPynb Fișier, puteți specifica un ID, etichetă sau etichetă a celulelor).

Rezumat

Am arătat cum să folosesc codul scurt de cvarto pentru a încorpora documente de cvarto folosind motoare alternative pentru a crea un document cu cvarto cu mai multe motoare.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.