Swave oder knitr mit Objekten aus der bestehenden R-Sitzung ausführen

8

Angenommen, ich habe ein Objekt x in meiner aktuellen Sitzung:

%Vor%

Wie kann ich dieses Objekt in einem Sweave- oder Knitr-Dokument verwenden, ohne es explizit zuweisen zu müssen:

%Vor%

Der Grund, den ich stelle, ist, weil ich ein R-Skript schreiben möchte, das Daten importiert und dann einen Bericht für jedes Thema mit einer Swave-Vorlage erstellt.

    
Sacha Epskamp 08.12.2011, 16:37
quelle

4 Antworten

7

Ich denke, es funktioniert einfach. Wenn Ihre Sweave-Datei den Namen "temp.Rnw" hat, führen Sie einfach

aus %Vor%

Sie müssen sich darum sorgen, dass die resultierende Ausgabe richtig benannt wird, damit jeder Bericht nicht überschrieben wird.

    
Aaron 08.12.2011, 16:42
quelle
20

Ich würde einen etwas anderen Ansatz wählen, da die Verwendung von globalen Variablen die reproducibility der Analyse reduziert. Ich verwende brew + sweave/knitr , um dies zu erreichen. Hier ist ein einfaches Beispiel.

%Vor%     
Ramnath 08.12.2011 21:15
quelle
6

Sowohl Swave als auch knitr nutzen die globale Umgebung (siehe globalenv() ), wenn Sie R-Code-Chunks auswerten, so dass in Ihrer globalen Umgebung für Ihr Dokument verwendet werden kann. (Streng genommen verwendet knitr das übergeordnete Bild parent.frame() , was in den meisten Fällen globalenv() ist)

    
Yihui Xie 08.12.2011 20:39
quelle
0

Eine andere Option, die ich in der Vergangenheit benutzt habe, ist, den Sweave-Code eine Datei öffnen zu lassen,

in meiner R-Sitzung

%Vor%

in meinem Sweave-Dokument

%Vor%

Offensichtlich sollten Sie Code zum Stoppen hinzufügen, wenn die Datei nicht gefunden werden kann.

    
PaulHurleyuk 10.12.2011 21:08
quelle

Tags und Links