我正在尝试从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=""))
答案 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"))