私は多くのサブディレクトリをsetwd()
扱っているので、現在と以前の場所を覚えておき、別の分析を実行するたびにそれらを元に戻す必要があるため、かなり不便です。一部のパスが相対パスである必要があり、他のパスが絶対パスである必要がある場合、事態はさらに複雑になります。Ruby のように、コードの特定の部分に変更を適用する便利な方法を探しています。
Dir.chdir("newDir") do
# some code here #
end
私はそのような醜い関数を書きました:
path = list()
tempDirNew <- function(..., abs= FALSE){
path$tempDir$old <<- getwd()
mod = ifelse(abs == TRUE,
'',
path$tempDir$old)
path$tempDir$new <<- file.path(mod, ...)
dir.create(path= path$tempDir$new, showWarnings= FALSE)
setwd(dir= file.path(path$tempDir$new))
}
tempDirOld <- function(){
setwd(dir= path$tempDir$old)
path$tempDir$new <- NULL
path$tempDir$old <- NULL
}
コードの各部分のtempDirNew('newdir')
前後に適用します。tempDirOld()
しかし、組み込みの便利な方法があるのではないでしょうか?