从R打开pdf文件

时间:2013-09-05 15:54:10

标签: r pdf

我正在尝试从R打开一个pdf文件。为此我正在使用Biobase包中的openPDF()函数。如果文件路径不包含单词之间的空格(例如"/Users/Admin/Desktop/test.pdf"),则它很有效,但如果路径包含空格(例如/Users/Admin/Desktop/**My Project**/test.pdf)则不起作用。如何让它接受任何路径或如何自动转换openPDF()识别的给定路径?我也希望它可以在mac和windows上工作。这是代码:

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

4 个答案:

答案 0 :(得分:3)

这是openPDF中的错误。您可以致电normalizePath来解决此问题。

openPDF(normalizePath("test.pdf"))

对于记录,openPDF只是Windows下shell.exec的包装器,因此您可以直接调用它。

答案 1 :(得分:2)

无需外部包裹。这将适用于基本R函数system()

对于Mac / Unix:

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

对于PC:

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

或者,如果您希望修复路径,可以将其直接合并到paste0字符串中并在一行中执行:

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

答案 2 :(得分:1)

一个简单的替代方法是

browseURL(paste0(getwd(),"/","file.pdf")).

此函数在 R 基础中可用。

答案 3 :(得分:0)

fs软件包提供了跨平台的解决方案:

library(fs)
file_show(path(getwd(), "file.pdf"))