Tôi thường thấy mình viết các tập lệnh R tạo ra nhiều đầu ra. Tôi thấy nó sạch hơn để đưa đầu ra này vào (các) thư mục riêng của nó. Những gì tôi đã viết dưới đây sẽ kiểm tra sự tồn tại của một thư mục và di chuyển vào đó, hoặc tạo thư mục và sau đó di chuyển vào đó. Có cách nào tốt hơn để tiếp cận điều này?
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()
mã R - về cơ bản nó đánh bại ý tưởng sử dụng thư mục làm việc vì bạn không còn có thể dễ dàng di chuyển mã giữa các máy tính.
.bat
tệp mà người dùng cuối sẽ không bao giờ phải sửa đổi.
setwd
làm việc với các đường dẫn mạng. Bạn chỉ cần cung cấp các đường dẫn để lưu kết quả và vẫn hoạt động với đường dẫn hiện tại (đường dẫn đó được thiết lập khi phiên R bắt đầu). Hoặc bắt đầu R với thư mục làm việc mong muốn.
out_dir <- "path/to/output/directory"
và sau đó sử dụng write.table(file = file.path(out_dir,"table_1.csv"), ...)
. Hoặc thậm chí out_file <- function(fnm) file.path("path/to/output/directory", fnm)
và sau đó write.table(file = out_file("table_1.csv"), ...)
(phương pháp tương tự tôi sử dụng khi làm việc với các ổ đĩa mạng).