web-dev-qa-db-fra.com

Markdown R: accès à la variable à partir du bloc de code (portée variable)

Dans R markdown (package knitr), puis-je accéder à une variable dans le corps du document qui a été calculée dans un bloc de code?

45
m.templemire

Oui. Vous pouvez simplement appeler n'importe quelle variable précédemment évaluée en ligne.

par exemple. Si vous aviez précédemment créé un data.frame Dans un bloc avec df <- data.frame(x=1:10)

`r max(df$x)`

Devrait produire

10
61
Maiasaura

Je voudrais ajouter que ce n'est pas le cas pour d'autres langues que R. Je sais que la question est résolue et sur R, mais peut-être que quelqu'un d'autre trouve cela utile:

À l'exception de engine = 'R' (par défaut), tous les morceaux sont exécutés dans des sessions distinctes, de sorte que les variables ne peuvent pas être directement partagées. Si nous voulons utiliser des objets créés dans des blocs précédents, nous devons généralement les écrire dans des fichiers (comme effets secondaires). Pour le moteur bash, nous pouvons utiliser Sys.setenv () pour exporter des variables de R vers bash (exemple). Une autre approche consiste à utiliser le package runr (expérimental).

Source

Exemple en R:

x = 4

print(x)

## [1] 4

Exemple 2a de Python):

x=1
print(x)

## 1

Exemple Python 2b):

print(x)

## Traceback (most recent call last):
##   File "<string>", line 1, in <module>
## NameError: name 'x' is not defined

Juste FYI.

4
inktrap

Vous pouvez accéder à une variable précédemment créée afin

`r variable`

Mais si la variable est numérique et que vous souhaitez l'ajouter à un document pdf, vous devez convertir la variable en chaîne afin

`r toString(variable)`