2013-09-05 9 views
2

Я пытаюсь открыть файл PDF из R. Для этого я использую функцию openPDF() из пакета Biobase. Он работает хорошо, если путь к файлу не содержит пробелов между словами (например, "/Users/Admin/Desktop/test.pdf"), но он не работает, если путь содержит пробелы (например, /Users/Admin/Desktop/**My Project**/test.pdf). Как я могу заставить его принять любой путь или как я должен автоматически преобразовывать заданный путь, который распознается openPDF()? Мне также хотелось бы, чтобы он работал как с Mac, так и с окнами. Вот код:Открыть файл pdf из R

library(Biobase) 
pdf("test.pdf") 
plot(1:10) 
dev.off() 
openPDF(paste(getwd(), "/test.pdf", sep="")) 

ответ

2

Это ошибка в openPDF. Вы можете обойти его, позвонив по номеру normalizePath.

openPDF(normalizePath("test.pdf")) 

Для записи, openPDF является просто оболочкой для shell.exec под Windows, так что вы можете просто позвонить, что вместо этого.

+0

Я пробовал, и он все еще не работает k 'openPDF (normalizePath (c (getwd()," test.pdf ")))' – aymer

+0

Попробуйте: 'openPDF (normalizePath (file.path (getwd()," test.pdf ")))' или просто ' openPDF (normalizePath ("test.pdf")) ', как было предложено. –

+0

все еще не работает. Я не упоминал, что я использую mac. – aymer

1

Нет необходимости в внешних упаковках. Это будет работать с функцией базы R system()

Для Mac/Unix:

path = '/path/to/file.pdf' 
system(paste0('open "', path, '"')) 

Для ПК:

path = '\path\to\file.pdf' 
system(paste0('start "', path, '"')) 

Или, если вы хотите, чтобы путь фиксированного, вы можете просто включить его прямо в строку paste0 и сделать это в одной строке:

system('open "/path/to/file.pdf"') 
+0

'system (paste0 ('open' ', path,' ''))' работает для Windows. – Randel

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