質問

R デバイス(ポストスクリプトが最適)に出力をファイルではなく変数に書き込む方法はありますか?

たとえば、私はこれを知っています:

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 =&quot;&quot;、command =&quot; | cat&quot;)

いったいどうしてそんなことをしたいの? Rは、Postscriptファイルを操作するための非常に優れたシステムではありません。それ以外の場合は、tempfile()を使用してイメージをファイルに書き込むことができます。その後、ファイルを標準のファイル関数を使用して読み込むことができます。あなたが空想になりたいなら、おそらくfifo()パイプを使用することができますが、私はそれがはるかに高速になるとは思いません。ただし、別のアプローチを使用した方が良いと思われます。

次のようにtextConnectionを使用できるはずです。

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

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

しかし、 string は空白のままです-おそらくバグですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top