2013-07-30 2 views
5

У меня есть программа R, которая выводит буклет графики как файл PDF на локальный сервер. Есть отдельный PDF-файл, представляющий часть, не написанная в R, что я хотел бы присоединиться к моей работе.Как присоединиться к файлам PDF в R?

я могу завершить это в Adobe и R-блоггеры есть процесс здесь, оба из которых включают присоединение файлов вручную, как это было:

http://www.r-bloggers.com/splitting-and-combining-r-pdf-graphics/

Но то, что я действительно предпочитаю do просто запускает мой код и объединяет файлы. Мне не удалось найти похожие сообщения при поиске «[R] Pdf» и «join», «merge», «import pdf» и т. Д.

Мое намерение - запустить код для другого идентификатора число («Врач») каждый раз. Отчет будет сохранен в виде PDF под номером идентификатора на сервере, и к каждому документу будет добавлено одно и то же добавление.

Вот текущий код, создающий отчет R.

Physician<- 1 

#creates handle for file name and location using ID 
Jumanji<- paste ("X:\\Feedback_ID_", Physician, ".pdf", sep="") 

#PDF graphics device on, using file handle 
pdf(file=Jumanji,8.5, 11) 

Несколько графиков для этого идентификатора происходят здесь, а затем PDF-файл завершается с помощью dev.off().

dev.off() 

Я думаю, что нужно тянуть внешний документ в R и ссылаться на него в период между открытием и закрытием, но я не был успешным здесь.

+8

Если вы используете систему * nix, я бы использовал pdftk на командной строке. вы можете написать функции обертки в R, которые вызывают «систему», если хотите. – Justin

+3

Помимо 'pdftk', который (как предлагает @Justin) отвечает на исходный вопрос, весь сценарий для меня звучит как типичная работа для' Sweave' или 'knitr'. – cbeleites

+0

@ Justin pdftk также работает с Windows. – Thomas

ответ

7

Чтобы сделать это в R, следуйте предложению @cbeleites (который, я думаю, справедливо предлагает вам переместить весь ваш рабочий процесс в knitr), чтобы сделать этот бит в Sweave/knitr. вяжут следующее PDF, где «test.pdf» является отчетом, что вы добавление к, и вы получите результат, который вы хотите:

\documentclass{article} 
\usepackage{pdfpages} 
\begin{document} 
\includepdf{test.pdf} % your other document 
<<echo=FALSE>>= 
x <- rnorm(100) 
hist(x) 
# or whatever you need to do to get your plot 
@ 
\end{document} 

Кроме того, пост связывания кажется сумасшедшим, потому что это легко объединить графики в один PDF в R (на самом деле это опция по умолчанию). Просто оставьте устройство pdf открытым с его параметром onefile=TRUE (по умолчанию).

x <- rnorm(100) 
y <- rnorm(100) 
pdf("test.pdf") 
hist(x) 
hist(y) 
dev.off() 

Участки автоматически будут разбиты на страницы.

+1

+1 простой, но отличный пример. – ptpaterson

Смежные вопросы