Frage

Gibt es eine Möglichkeit, eine R Gerät haben (Postscript wäre toll) schreiben die Ausgabe in eine Variable anstelle einer Datei?

Zum Beispiel weiß ich:

postscript(file="|cat")
plot(1:10)
dev.off()

Wird die Postscript-Text senden an STDOUT. Wie kann ich diesen Text in eine Variable innerhalb R?

War es hilfreich?

Lösung

Ich habe Erfolg habe die Binary von einem Grundstück in einen R-Variable als String zu bekommen. Sein einige Lese- / Schreibkopf bekam. Im Snippet speichert R die Handlung als eine temporäre Datei und liest es wieder an.

## create a plot
x <- rnorm(100,0,1)
hist(x, col="light blue")

## save plot as temp file
png(filename="temp.png", width=500, height=500)
print(p)
dev.off()

## read temp file as a binary string
plot_binary <- paste(readBin("temp.png", what="raw", n=1e6), collapse="")

Vielleicht ist das für Sie hilfreich.

Andere Tipps

Postscript nimmt einen Befehl Argument, also Postscript (file = "", Befehl = "| cat")

Warum in aller Welt würden Sie das tun wollen? R ist kein sehr gutes System für die Postscript-Dateien zu manipulieren. Wenn nichts anderes, können Sie tempfile () verwenden, um das Bild in eine Datei zu schreiben, die Sie dann in unter Verwendung von Standard-Dateifunktionen lesen können. Wenn Sie sein Phantasie wollten, könnten Sie vielleicht verwenden Fifo () Rohre, aber ich bezweifle, wird es viel schneller sein. Aber ich vermute, dass Sie mit einem anderen Ansatz besser sein würden.

Sie sollten eine textConnection nutzen können wie folgt.

tc <- textConnection("string", "w")

postscript(tc)
plot(1:10)
dev.off()

Aber string bleibt leer - vielleicht ein Bug

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top