Für besser oder schlechter ist diese Unterlassung beabsichtigt. Indem Sie sich auf Objekte verlassen, die außerhalb des Dokuments erstellt wurden, wird Ihr Dokument weniger reproduzierbar. Wenn Ihr Dokument also Daten in der globalen Umgebung benötigt, können Sie nicht nur die Dokumente und Dateien neu erstellen es selbst.
Aus diesem Grund, und um das Rendern im Hintergrund durchzuführen, erstellt RStudio tatsächlich eine separate R-Sitzung, um das Dokument zu rendern. Diese Hintergrund-R-Sitzung kann keine der Umgebungen in der interaktiven R-Sitzung sehen, die Sie in RStudio sehen.
Der beste Weg, um dieses Problem zu umgehen, ist den Code zu nehmen, den Sie zum Erstellen der Inhalte Ihrer globalen Umgebung verwendet haben und ihn in Ihr Dokument verschieben (Sie können echo = FALSE
verwenden, wenn Sie nicht möchten, dass er im Dokument angezeigt wird) . Dies macht Ihr Dokument unabhängig und reproduzierbar.
Wenn Sie das nicht können, gibt es ein paar Ansätze, die Sie die Daten in der globalen Umwelt nehmen kann direkt zu verwenden:
Anstelle der Knit HTML button, geben Sie rmarkdown::render("your_doc.Rmd")
bei die R-Konsole. Dies wird in der aktuellen Sitzung anstelle einer Hintergrundsitzung gestrickt. Alternativ:
Speichern Sie Ihre globale Umgebung in eine .Rdata-Datei vor dem Rendern (verwenden Sie die save-Funktion von R) und load es in Ihrem Dokument.
Wie verarbeiten Sie Ihre RMarkdown-Datei? Durch Drücken der Schaltfläche 'HTML stricken' oder durch Ausführen eines Befehls 'stricken' irgendwo? – arvi1000
Ich drücke "HTML stricken" - könnte das das Problem sein? –
Yup. Siehe die Antwort unter – arvi1000