Bu commandArgsişlevi, Rscript tarafından gerçek R yorumlayıcısına iletilen tüm seçenekleri almak ve aramak için kullanabilirsiniz --file=. Betiğiniz yoldan başlatılmışsa veya tam yolla başlatılmışsa, script.nameaşağıdakiler bir ile başlayacaktır '/'. Aksi takdirde, göreli olmalıdır cwdve tam yolu elde etmek için iki yolu birleştirebilirsiniz.
Düzenleme: Görünüşe göre yalnızca script.nameyukarıdakilere ihtiyacınız var ve yolun son bileşenini kaldırıyorsunuz. Gereksiz cwd()örneği kaldırdım ve ana komut dosyasını temizledim ve yayınladım other.R. Bu komut dosyasını ve other.Rkomut dosyasını aynı dizine kaydedin chmod +xve ana komut dosyasını çalıştırın.
ana.R :
#!/usr/bin/env Rscript
initial.options <- commandArgs(trailingOnly = FALSE)
file.arg.name <- "--file="
script.name <- sub(file.arg.name, "", initial.options[grep(file.arg.name, initial.options)])
script.basename <- dirname(script.name)
other.name <- file.path(script.basename, "other.R")
print(paste("Sourcing",other.name,"from",script.name))
source(other.name)
diğer R :
print("hello")
çıktı :
burner@firefighter:~$ main.R
[1] "Sourcing /home/burner/bin/other.R from /home/burner/bin/main.R"
[1] "hello"
burner@firefighter:~$ bin/main.R
[1] "Sourcing bin/other.R from bin/main.R"
[1] "hello"
burner@firefighter:~$ cd bin
burner@firefighter:~/bin$ main.R
[1] "Sourcing ./other.R from ./main.R"
[1] "hello"
Dehmann'ın aradığına inanıyorum.