Записать текст графика / двоичный файл в переменную - PullRequest
2 голосов
/ 23 октября 2009

Есть ли способ заставить R устройство (было бы неплохо PostScript) записать вывод в переменную вместо файла?

Например, я знаю это:

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

Отправит текст постскриптума на STDOUT. Как я могу получить этот текст в переменную в R?

Ответы [ 4 ]

3 голосов
/ 17 августа 2010

Мне удалось получить двоичный файл графика в переменную R в виде строки. Это имеет некоторые чтения / записи накладных расходов. В приведенном ниже фрагменте R сохраняет график в виде временного файла и считывает его обратно.

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

Может быть, это полезно для вас.

1 голос
/ 23 октября 2009

С какой стати вы хотите это сделать? R не очень хорошая система для манипулирования файлами Postscript. Если ничего другого, вы можете использовать tempfile (), чтобы записать изображение в файл, который затем можно прочитать с помощью стандартных файловых функций. Если вы хотите быть модным, вы можете использовать fifo () pipe, но я сомневаюсь, что это будет намного быстрее. Но я подозреваю, что вам лучше воспользоваться другим подходом.

1 голос
/ 23 октября 2009

postscript принимает аргумент команды, следовательно, postscript (file = "", command = "| cat")

0 голосов
/ 24 октября 2009

Вы должны иметь возможность использовать textConnection следующим образом.

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

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

Но string остается пустым - может быть, ошибка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...