Записать текст графика / двоичный файл в переменную

StackOverflow https://stackoverflow.com/questions/1614331

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

Мне удалось получить двоичный файл графика в переменную 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="")

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

Другие советы

postscript принимает аргумент команды, поэтому postscript (file = " " команда = " | cat ")

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top