从R打开pdf文件

从R打开pdf文件,r,pdf,R,Pdf,我试图从R打开一个pdf文件。为此,我使用Biobase软件包中的openPDF()函数。如果文件的路径不包含单词之间的空格(例如,“/Users/Admin/Desktop/test.pdf”),则它可以正常工作,但如果路径包含空格(例如,/Users/Admin/Desktop/**My Project**/test.pdf),则它不工作。如何使其接受任何路径,或者如何自动转换给定路径,以使其被openPDF()识别?我也希望它能在mac和windows上运行。代码如下: library(B

我试图从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=""))

这是openPDF中的一个bug。您可以通过调用
normalizePath
来解决此问题

openPDF(normalizePath("test.pdf"))

请注意,
openPDF
只是Windows下的
shell.exec
的包装,因此您可以直接调用它。

无需外部软件包。这将与基本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"')

fs包提供了一个跨平台的解决方案:

库(fs)
文件显示(路径(getwd(),“file.pdf”))
一个简单的选择是

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

这个函数在R库中可用。

我试过了,但它仍然不起作用
openPDF(normalizePath(c(getwd(),“test.pdf”)
Try:
openPDF(normalizePath(file.path)(getwd(),“test.pdf”)
或者只是
openPDF(normalizePath(“test.pdf”))
我没有Mac来测试这个,所以你得帮我试一下。Mac上是否存在
shortPathName
?如果是这样,请尝试
openPDF(shortPathName(“test.pdf”)
。另外,请尝试
openPDF(shQuote(“test.pdf”)
system(粘贴0(“打开”),路径“”)
适用于Windows。