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

setwd()R コマンドを使用してディレクトリを変更しないのはなぜhelp(setwd)ですか -- 代わりに-- を参照してください。

于 2012-11-05T23:00:17.583 に答える
2

system()各コマンドを独自のインタープリターで実行します。作業ディレクトリに加えられた変更は反映されません。

作業ディレクトリでいくつかのことを行いたい場合は、systemセミコロンで区切ってすべてのコマンドを 1 つの呼び出しに入れます (これは Linux シェルでは機能しますが、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 に答える