私は以前、グラフィックスと外部プログラムの組み合わせに関するブログを作成したことがあり、以下に示すように、Ghostscript を使用して完全に R 内でこれを実装することについて、読者 ( -ここをクリック -)から素晴らしいコメントを受け取りました。私は最近これを少し使っていて、他の人と共有したいと思っています. 関数をより直感的にするために修正したいのですが、ghostscript の種類を検出することは、私がやりたい 1 つの mod ですが、できません。UNIX と Windows は、 経由で簡単に比較できます.Platform
。問題は、私が苦労している Windows 32 と 64 です。
R を使用して、どの Ghostscript バージョン (gswin32c または gswin64c) が実行されているかを検出するにはどうすればよいですか? Windows 64 マシンで gswin32c を実行しているため、コンピューターの仕様を見るだけでは十分ではありません。os 引数を完全に削除するか、または に設定しNULL
て、関数にこの情報へのアクセスを試行させるという考え方です。
mergePDF <- function(infiles, outfile, os = "UNIX") {
version <- switch(os,
UNIX = "gs",
Win32 = "gswin32c",
Win64 = "gswin64c")
pre = " -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="
system(paste(paste(version, pre, outfile, sep = ""), infiles, collapse = " "))
}
pdf("file1.pdf", width = 10, height = 8)
plot(1:10, col="red", pch = 19)
dev.off()
pdf("file2.pdf", width = 16, height = 8)
plot(1:10)
dev.off()
mergePDF("file1.pdf file2.pdf", "mergefromR.pdf", "Win32")