4

我正在尝试从 R 打开一个 pdf 文件。为此,我正在使用openPDF() Biobase 包中的函数。如果文件的路径不包含单词之间的空格(例如"/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

4 回答 4

4

这是openPDF. 您可以通过调用来解决它normalizePath

openPDF(normalizePath("test.pdf"))

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

于 2013-09-05T16:27:47.463 回答
4

无需外部软件包。这将与基本 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"')
于 2016-05-29T01:24:34.303 回答
2

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

library(fs)
file_show(path(getwd(), "file.pdf"))
于 2019-11-20T18:35:09.767 回答
2

一个简单的选择是

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

此功能在 R 基础中可用。

于 2021-06-11T12:01:42.520 回答