0

我想调用系统命令来更改 R 控制台中的目录。

例如,

system(paste('"cd C:/Users/Dropbox/RPackages"'),intern = TRUE)
system(paste('"R CMD build test"'))
system(paste('"R CMD check test"'))
system(paste('"R CMD INSTALL test"'))
library(test)

这些命令应该在 Windows 命令提示符中运行。但我想将它们埋在 RGUI 脚本文件中,以允许用户在将其包装到包中之前更改参数。我从 R 控制台得到的错误消息是

Error in system(paste("\"cd C:/Users/Dropbox/RPackages"\""), intern = TRUE) : 
'"cd C:/Users/Dropbox/RPackages"' not found

我也试过

system("cd C:/Users/Dropbox/RPackages",intern = TRUE)

但收到类似的错误信息

Error in system("cd C:/Users/Dropbox/RPackages", intern = TRUE) : 
'cd' not found
4

3 回答 3

8

为什么不使用 R 命令setwd()来更改目录——请参阅help(setwd)——而不是?

于 2012-11-05T23:00:17.583 回答
2

system()在自己的解释器中运行每个命令。对工作目录所做的任何更改都不会传播。

如果你想在一个工作目录中做几件事,把所有命令放在一个system调用中,用分号分隔(这适用于 Linux shell,不确定 Windows)。用 \n 分隔也适用于 Linux,试试看?

比较这些:

> getwd()
[1] "/nobackup/rowlings/Downloads/Dirs"
> system("cd Foo; pwd")
/nobackup/rowlings/Downloads/Dirs/Foo
> system("cd Foo") ; system(" pwd")
/nobackup/rowlings/Downloads/Dirs

根据您的实际问题,您最好setwd()在 R 中使用。

于 2012-11-06T14:33:56.117 回答
1

你试过双反斜杠吗?

'C:\\Users\\Dropbox\\RPackages'

在 Windows 7 中使用 R 时遇到了类似的问题:

download.file(url=<url>, destfile='C:\\<dir>\\<dir>\\<file>')
于 2013-03-22T20:17:27.113 回答