Sık sık kendimi çok fazla çıktı üreten R komut dosyaları yazarken buluyorum. Bu çıktıyı kendi dizin (ler) ine koymak daha temiz buluyorum. Aşağıda yazdıklarım bir dizinin varlığını kontrol edecek ve dizine geçecek ya da dizini oluşturacak ve dizine geçecektir. Buna yaklaşmanın daha iyi bir yolu var mı?
mainDir <- "c:/path/to/main/dir"
subDir <- "outputDirectory"
if (file.exists(subDir)){
setwd(file.path(mainDir, subDir))
} else {
dir.create(file.path(mainDir, subDir))
setwd(file.path(mainDir, subDir))
}
setwd()
R kodunda kullanmamalısınız - kodunuzu bilgisayarlar arasında kolayca taşıyamayacağınız için temelde bir çalışma dizini kullanma fikrini yener.
.bat
, son kullanıcının asla değiştirmek zorunda kalmayacağı bir dosya olacaktır.
setwd
ağ yollarıyla çalışmanıza gerek yoktur . Sonuçları kaydetmek ve halen geçerli yolla (R oturumu başladığında kurulan yol) çalışmak için yollar sağlamanız yeterlidir. Ya da R'yi çalışma dizini ile başlatın.
out_dir <- "path/to/output/directory"
ve kullanın write.table(file = file.path(out_dir,"table_1.csv"), ...)
. Hatta out_file <- function(fnm) file.path("path/to/output/directory", fnm)
daha sonra write.table(file = out_file("table_1.csv"), ...)
(ağ sürücüleri ile çalışırken kullanabileceğim benzer yöntemi).