Domanda

Esiste un modo per avere un dispositivo R (postscript sarebbe fantastico) scrivere l'output in una variabile anziché in un file?

Ad esempio, lo so:

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

Invia il testo del Postscript a STDOUT . Come posso ottenere quel testo in una variabile in R ?

È stato utile?

Soluzione

Ho avuto successo nel portare il binario di un diagramma in una variabile R come stringa. Ha qualche overhead di lettura / scrittura. Nello snippet di seguito, R salva la trama come file temporaneo e la legge nuovamente.

## 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="")

Forse questo ti è utile.

Altri suggerimenti

postscript accetta un argomento di comando, quindi postscript (file = " ", command = " | cat ")

Perché mai vorresti farlo? R non è un ottimo sistema per manipolare i file Postscript. Se non altro, puoi usare tempfile () per scrivere l'immagine in un file, che puoi quindi leggere usando le funzioni standard del file. Se vuoi essere sofisticato, potresti forse usare i tubi fifo (), ma dubito che sarà molto più veloce. Ma sospetto che staresti meglio con un approccio diverso.

Dovresti essere in grado di utilizzare un textConnection come segue.

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

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

Ma stringa rimane vuota - forse un bug?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top