Pregunta

¿Hay alguna manera de tener un dispositivo R (postscript sería genial) escribir la salida en una variable en lugar de un archivo?

Por ejemplo, sé esto:

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

Enviará el texto postscript a STDOUT . ¿Cómo puedo obtener ese texto en una variable dentro de R ?

¿Fue útil?

Solución

He tenido éxito en obtener el binario de un gráfico en una variable R como una cadena. Tiene algunos gastos de lectura / escritura. En el siguiente fragmento de código, R guarda el gráfico como un archivo temporal y lo lee nuevamente.

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

Tal vez esto te sea útil.

Otros consejos

postscript toma un argumento de comando, por lo tanto, postscript (archivo = " ", comando = " | cat ")

¿Por qué demonios quieres hacer eso? R no es un sistema muy bueno para manipular archivos PostScript. Si no es nada más, puede usar tempfile () para escribir la imagen en un archivo, que luego puede leer usando las funciones de archivo estándar. Si quisieras ser lujoso, quizás podrías usar tuberías de quince (), pero dudo que sea mucho más rápido. Pero sospecho que estaría mejor con un enfoque diferente.

Debería poder usar una conexión de texto de la siguiente manera.

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

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

Pero cadena permanece en blanco, ¿quizás sea un error?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top