从R打开pdf文件
我试图从R打开一个pdf文件。为此,我使用Biobase软件包中的从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
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。