ฉันมักจะพบว่าตัวเองเขียนสคริปต์ R ที่สร้างผลลัพธ์จำนวนมาก ฉันคิดว่ามันสะอาดกว่าที่จะนำเอาท์พุทนี้ไปไว้ในไดเรกทอรีของตัวเอง สิ่งที่ฉันเขียนด้านล่างจะตรวจสอบการมีอยู่ของไดเรกทอรีและย้ายไปไว้ในไดเรกทอรีนั้นหรือสร้างไดเรกทอรีแล้วย้ายไปยังไดเรกทอรีนั้น มีวิธีที่ดีกว่าในการเข้าถึงสิ่งนี้หรือไม่?
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 - โดยพื้นฐานแล้วมันจะกำจัดความคิดในการใช้ไดเรกทอรีที่ใช้งานได้เพราะคุณไม่สามารถย้ายรหัสระหว่างคอมพิวเตอร์ได้อีกต่อไป
.bat
ไฟล์ที่ผู้ใช้จะไม่ต้องแก้ไข
setwd
ทำงานกับเส้นทางเครือข่าย คุณเพียงแค่ต้องระบุเส้นทางเพื่อบันทึกผลลัพธ์และยังคงทำงานกับเส้นทางปัจจุบัน (เส้นทางนั้นถูกสร้างขึ้นเมื่อเริ่มเซสชัน R) หรือเริ่ม R ด้วยไดเรกทอรีการทำงานที่ต้องการ
out_dir <- "path/to/output/directory"
write.table(file = file.path(out_dir,"table_1.csv"), ...)
หรือแม้แต่out_file <- function(fnm) file.path("path/to/output/directory", fnm)
แล้วwrite.table(file = out_file("table_1.csv"), ...)
(วิธีที่คล้ายกันฉันใช้เมื่อทำงานกับไดรฟ์เครือข่าย)