Ich frage mich, ob es einen Trick gibt, das aktuelle Datum in die YAML-Titelseite eines .rmd
zu verarbeitenden Dokuments knitr
und des rmarkdown
Pakets aufzunehmen. Früher hatte ich die folgende Zeile oben auf meinen Wiki-Seiten:
_baptiste, `r format(Sys.time(), "%d %B, %Y")`_
und es würde am 3. Mai 2014 in der HTML-Ausgabe zu baptiste konvertiert werden. Jetzt möchte ich den erweiterten Pandoc-Wrapper von nutzen rmarkdown
, aber r-Code im YAML-Header zu haben scheint nicht zu funktionieren:
---
title: "Sample Document"
output:
html_document:
toc: true
theme: united
date: `r format(Sys.time(), "%d %B, %Y")`
author: baptiste
---
Error in yaml::yaml.load(front_matter) :
Scanner error: while scanning for the next token at line 6, column 7
found character that cannot start any token at line 6, column 7
Calls: <Anonymous> ... output_format_from_yaml_front_matter ->
parse_yaml_front_matter -> <Anonymous> -> .Call
Irgendeine Problemumgehung?
r
yaml
knitr
r-markdown
Baptiste
quelle
quelle
!expr
wurdendate: !expr Sys.time()
, aber jetzt funktioniert dies auch nicht.Antworten:
Dies ist etwas schwierig, aber Sie müssen das
date
Feld nur in YAML gültig machen, indem Sie den Inline-R-Ausdruck zitieren, zDann ist der Parsing-Fehler verschwunden und das Datum wird in der Markdown-Ausgabe generiert, damit Pandoc den Wert von verwenden kann
Sys.time()
.quelle
includes: after_body: [ ... ]
da gültige YAML nur Dateinamenzeichenfolgen sind ... Also keine Möglichkeit vonincludes: "`r list.files(...)`"
?.md
Datei, wenn ichkeep_md: true
im YAML-Header habe. Irgendeine Lösung dafür?date: "`r format(Sys.time(), '%B %d, %Y')`"
.r format(Sys.time(), '%d\\\\. %B %Y')
Ich folge nur @Yihui. Seltsamerweise habe ich das gefunden:
funktioniert besser als:
Für letztere entscheidet sich RStudio dafür, die äußeren Anführungszeichen zu ändern,
'
wenn zwischen HTML- und PDF-Ausgabe gewechselt wird und somit der Code gebrochen wird.quelle
Oder einfach nur einfache Anführungszeichen und umgekehrt. Das funktioniert gut.
quelle
Eine Problemumgehung besteht darin, das
brew
Paket zu verwenden und Ihre YAML-Titelseite alsbrew
Vorlage zu schreiben .Sie können jetzt eine
brew_n_render
Funktion verwenden, die das Dokument mit vorverarbeitetbrew
und dann durchläuftrmarkdown
.Damit dies mit der
KnitHTML
Schaltfläche in RStudio funktioniert , können Sie ein benutzerdefiniertes Ausgabeformat schreiben, das automatischbrew
als Präprozessor verwendet wird. Durch die Verwendungbrew
der Vorverarbeitung wird sichergestellt, dass dieknitr
Codeblöcke in Ihrem Dokument während der Vorverarbeitungsphase unberührt bleiben. Im Idealfall sollte dasrmarkdown
Paket die Metadaten in seiner API verfügbar machen und es Benutzern ermöglichen, sie über eine benutzerdefinierte Funktion auszuführen.quelle
oder, vielleicht so etwas wie das Folgende, siehe R Markdown Parametrized Reports
quelle
Für das gleiche Problem für mich. Ich löse es mit diesem Code.
Update Sie können auch ein anderes Format verwenden.
Beste.
quelle
Das hat mich heute gebissen. ich hatte
und bekam mehr oder weniger den gleichen Fehler wie das OP, aber nur beim Stricken zu Wort. Das Stricken mit PDF war in Ordnung, bevor ich versuchte, mit Word zu stricken. Danach hat es auch nicht funktioniert.
Position 31 ist das erste% -Zeichen
Ersetzen durch
wie von MLaVoie empfohlen, hat gut funktioniert.
Ich habe keine Ahnung, warum das passiert ist, und ich habe keine Zeit zum Graben - Berichte zum Abschluss.
quelle