ฉันเข้าใจว่าสิ่งนี้ล้าสมัย แต่ฉันไม่สามารถรับคำตอบในอดีตเพื่อให้ทำงานได้อย่างน่าพอใจดังนั้นฉันจึงต้องการมีส่วนร่วมในวิธีการของฉันในกรณีที่มีคนอื่นพบข้อผิดพลาดเดียวกันกับที่กล่าวถึงในความคิดเห็นต่อคำตอบของ BumbleBee
Mine ขึ้นอยู่กับคำสั่งระบบง่ายๆ สิ่งที่คุณป้อนฟังก์ชันคือชื่อของสคริปต์ของคุณ:
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