これは古くなっていることを理解していますが、以前の回答を十分に機能させることができなかったため、BumbleBeeの回答へのコメントに記載されている同じエラーが他の誰かに発生した場合に備えて、メソッドを提供したいと思いました。
鉱山は単純なシステムコマンドに基づいています。関数に与えるのはスクリプトの名前だけです。
extractRootDir <- function(x) {
abs <- suppressWarnings(system(paste("find ./ -name",x), wait=T, intern=T, ignore.stderr=T))[1];
path <- paste("~",substr(abs, 3, length(strsplit(abs,"")[[1]])),sep="");
ret <- gsub(x, "", path);
return(ret);
}
setwd(extractRootDir("myScript.R"));
関数からの出力は次のようになります"/Users/you/Path/To/Script"
。これが行き詰まっている可能性のある他の人を助けることを願っています。
?setwd
?getwd