5 Stimmen

Umleitung von R-Graphen nach MS Word

Ich frage mich, wie man R-Diagramme in MS Word umleiten kann? Wie sink() die R-Ausgabe in eine beliebige Datei umleiten, nicht aber die Diagramme. Ich habe R2Wd ausprobiert, aber manchmal funktioniert es nicht richtig. Jeder Kommentar und jede Hilfe wird sehr geschätzt. Danke

7voto

PaulHurleyuk Punkte 7789

Um Ihre direkte Frage zu beantworten: Der beste Weg, die Ergebnisse von R-Skripten und Plots in Word zu übertragen, ist wahrscheinlich eine Form von Weben . Nachschlagen odfweave um die R-Ausgabe an eine LibreOffice Datei, die dann in Word konvertiert oder sogar direkt in Word geöffnet werden kann, wenn Sie das richtige Plugin haben.

Um Diagramme zu erstellen, die bearbeitet werden können (d. h. Sie können das Aussehen der Diagramme ändern, die Legende verschieben usw.), würde ich empfehlen, das Diagramm in einem svg-Format (skalierbare Vektorgrafik) zu speichern, das Sie dann mit der ausgezeichneten kostenlosen Vektorgrafik-App bearbeiten können inkscape .

Wenn ich zum Beispiel mein ggplot2-Diagramm als ein Objekt erstelle

library(ggplot2)
dataframe<-data.frame(fac=factor(c(1:4)),data1=rnorm(400,100,sd=15))
dataframe$data2<-dataframe$data1*c(0.25,0.5,0.75,1)
testplot<-qplot(x=fac, y=data2,data=dataframe, colour=fac, geom=c("boxplot", "jitter"))

Sie können das Cairo-Paket verwenden, das die Erstellung von svg-Dateien ermöglicht, die ich dann in Inkscape bearbeiten kann.

library(Cairo)
Cairo(600,600,file="testplot.svg",type="svg",bg="transparent",pointsize=8, units="px",dpi=400)
testplot
dev.off()
Cairo(1200,1200,file="testplot12200.png",type="png",bg="transparent",pointsize=12, units="px",dpi=200)
testplot
dev.off()

Weitere Informationen finden Sie in dieser früheren Frage, die weitere gute Antworten enthält Editierbare Diagramme aus R erstellen

Sie können auch diesen Rat von Hadley befolgen und das eigentliche ggplot2-Objekt speichern, es später laden und verändern

save(testplot, file = "test-plot.rdata")
# Time passes and you start a new R session
load("test-plot.rdata")
testplot + opts(legend.position = "none")
testplot + geom_point()

2voto

Greg Snow Punkte 46977

Um ein sink()-ähnliches Verhalten mit MSword zu erhalten, schauen Sie sich die wdTxtStart Funktion in der TeachingDemos Paket. Es verwendet R2wd intern, so dass Sie eine ähnliche Funktionalität sehen, es sendet nur alles, was Sie tun, an das Word-Dokument.

Die Diagramme werden nicht automatisch gesendet, da Sie sie möglicherweise ergänzen, aber sobald Sie wissen, dass Sie mit dem Diagramm fertig sind, können Sie wdtxtPlot um das aktuelle Diagramm an das Word-Dokument zu senden.

Wenn Sie schon vorher wissen, was Sie tun wollen, dann sweave oder etwas Ähnliches ist wahrscheinlich der bessere Ansatz (wie bereits erwähnt wurde). Die Gruppe, die Rexcel entwickelt hat, arbeitet auch an Sword, das innerhalb von MSword ähnliche Dinge tut.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X