2016-06-01 5 views
-1

есть способ дать одно и то же имя сценария R для pdf, созданного с использованием R CMD BATCH, например, для файла .Rout?R CMD BATCH output

Это значение по умолчанию:

:~$ R CMD BATCH my_script.R 
:~$ ls 
my_script.R 
my_script.Rout 
Rplots.pdf 

Так, чтобы изменить Rplots.pdf в my_scripts.pdf

EDIT Код для my_script.R

x <- c(1:5); y <- x # create some data 
par(pch=22, col="red") # plotting symbol and color 
par(mfrow=c(2,4)) # all plots on one page 
opts = c("p","l","o","b","c","s","S","h") 
for(i in 1:length(opts)){ 
    heading = paste("type=",opts[i]) 
    plot(x, y, type="n", main=heading) 
    lines(x, y, type=opts[i]) 
} 
+0

Производите некоторый код в 'my_script.R'. Я сделал некоторые поиски и получил решение кандидата, но хотел бы протестировать его перед публикацией. –

+0

Вы достигли какого-то прогресса? – Riccardo

ответ

1

Вы можете назвать ваш PDF-файл напрямую в R-коде

pdf(file = "my_script.pdf") 
plot(data) 
dev.off() 

Если вы не даете имя файла в функции pdf() то имя (по умолчанию) Rplots.pdf

+0

У меня есть несколько сюжетов, поэтому я не хотел бы вызывать каждый сюжет с использованием pdf() из сценария R – Riccardo

+0

Я этого не понимаю. Как вы создаете свои PDF-файлы, в противном случае в сценарии? –

+0

от терминала я вызываю R CMD BATCH my_script.R, и он создает my_script.Rout и файл с именем RPlots.pdf со всеми цифрами, созданными каждым вызовом plot(), присутствующим в скрипте – Riccardo

0

Вы можете получить аргументы командной строки и третий один будет имя файла пакетного файла так вы можете сохранить PDF-файл под этим именем.

x <- c(1:5); y <- x # create some data 
args <- commandArgs() 
pdf(paste0(sub("[.]R", "", args[3]), ".pdf")) 
# Need to have the par-arguments supplied after `pdf()` is opened 
par(pch=22, col="red") # plotting symbol and color 
par(mfrow=c(2,4)) # all plots on one page 
opts = c("p","l","o","b","c","s","S","h") 

for(i in 1:length(opts)){ 
    heading = paste("type=",opts[i]) 
    plot(x, y, type="n", main=heading ) 
    lines(x, y, type=opts[i]) 

} 
dev.off() 

я пытаюсь отправить «файл» аргумент в plot устройства, так как я думал, что это будет проходит с «точками» -mechanism к функции PDF, но это не удалось. (Возможно, работала, если был сделан только один вызов сюжета.) С другой стороны, вы можете определить переменную среды R_DEFAULT_DEVICE, которая будет функциональным кодом, который будет включать эту стратегию. См. ?options в разделе grDevices.