Pergunta

Existe uma maneira de ter um dispositivo R (PostScript seria ótimo) escrever a saída em uma variável em vez de um arquivo?

Por exemplo, eu sei que isto:

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

Vou enviar o texto pós-escrito STDOUT. Como posso obter esse texto em uma variável dentro R?

Foi útil?

Solução

Eu tive sucesso em obter o binário de um lote em uma variável de R como uma string. Sua tem alguma sobrecarga de leitura / gravação. No trecho abaixo, R salva a trama como um arquivo temporário e lê-lo novamente.

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

Talvez este seja útil para você.

Outras dicas

posfácio leva um argumento de comando, daí PostScript (file = "", command = "| cat")

Por que diabos você quer fazer isso? R não é um sistema muito bom para a manipulação de arquivos PostScript. Se nada mais, você pode usar tempfile () para gravar a imagem em um arquivo, que você pode ler no uso de funções de arquivos padrão. Se você queria ser extravagante, talvez pudesse usar FIFO () tubos, mas eu duvido que ele vai ser muito mais rápido. Mas eu suspeito que você seria melhor fora com uma abordagem diferente.

Você deve ser capaz de usar um textConnection como segue.

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

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

Mas string permanece em branco? - talvez um bug

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top