Réglage titre du document dans Rmarkdown à partir de paramètres
J'ai une Rmarkdown modèle qui fonctionne bien, et je l'ai paramétré pour que je puisse générer des variantes d'un même rapport à partir de différentes sources de données. Cependant, j'aimerais changer le titre du rapport dans chaque cas. Comment dois-je faire?
Voici le YAML en-tête j'ai jusqu'à présent:
---
title: "My Title"
author: "Me, Inc."
date: "August 4, 2015"
output: pdf_document
params:
title: default
---
J'ai essayé d'utiliser params=list(title="ASDF")
dans l'appel à rmarkdown::render
, et bien que mon code peut voir que la variable, il ne change pas le titre. J'ai aussi essayé d'utiliser r params$title
dans le fichier YAML, mais qui donne une erreur de syntaxe.
Est-il autre chose que je devrais essayer? Merci!
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser une deuxième YAML bloc de métadonnées, et de mettre le paramétrée métadonnées là.
J'ai eu le code suivant à fonctionner comme prévu (c'est à dire, la production d'un titre de document dans la liste de paramètres):
La RMarkdown documentation note que YAML blocs de métadonnées sont combinés par Pandoc. Utiliser le premier bloc de définir le jeu de paramètres, et la seconde pour utiliser les paramètres de métadonnées. Knitr va exécuter la R code pour interpréter les paramètres dans le deuxième bloc.Puis Pandoc de la fusion des blocs de métadonnées ensemble.
Mise à jour (2017):
Ceci peut être accompli en un seul bloc, comme suit:
Cela fonctionne parce que le titre vient après la
params
définition. J'ai mis des guillemets autour de la ligne R du code pour éviter les "erreurs du Scanner".title: ...
vient après leparams
déclaration.Scanner error
vous pouvez avoir besoin de citer des marques de chaque côté de la backticks (c'est à dire faire la valeur d'une chaîne de caractères pour l'analyseur syntaxique YAML).set_title
, alors j'ai dû l'utiliser une deuxième YAML metablock comme dans l'original de la réponse ci-dessusC'est une approche simplifiée de la dynamique de titre de défi.
Découpler titre à partir du haut de la déclaration comme ceci:
De:
À Ceci:
Au sein de la R du code des morceaux, déclarer
title_var
. Maintenant, le titre est détenu dans une variable. Espérons que cette aide!L'ajout de cette réponse car elle contribue à faire de la recherche en matière de démarque des titres dynamiques.
Simplement utiliser !r suivie par le nom de l'objet défini (test_title dans le cas ci-dessous) afin de rendre le titre dynamique.