Относительные пути - это путь к катастрофе, особенно если скрипт R не запускается из одного и того же места во всех системах.
Если вы уверены - 100% уверены - этот скрипт всегда будет запускаться из согласованного местоположения, тогда вы можете поставить:
outpath_prefix <- "../results/"
в верхней части скрипта и используйте функцию file.path()
, чтобы объединить пути независимо от платформы:
file.path(outpath_prefix, "function1results.xls")
Прочитайте страницу справки (?file.path
)для этой функции, специально для этого драгоценного камня:
Реализация разработана так, чтобы быть быстрой (быстрее, чем вставка), так как эта функция широко используется в самом R.
ОДНАКО
Подумайте об использовании концепции «проект» и установите пакет here
.
Либо используйте правильный «проект» (т. Е. Стандарт, определенный RStudio), который помещает «project-name.Rproj
»в корневом каталоге проекта или создайте один из этих файлов (они могут быть пустыми) в корневом каталоге проекта:
- `.here`
- `.projectile`
или используйте контроль версий для проекта (который является всегда хорошая идея) и убедитесь, что файл .git
находится в корневом каталогепроекта.
Затем вы можете сделать:
outpath_prefix <- here::here("results")
в верхней части любого сценария в каталоге проекта независимо отглубина и до сих пор делают:
file.path(outpath_prefix, "function1results.xls")
, чтобы получить независимые от платформы, менее подверженные ошибкам и быстрее генерируемые спецификации пути для ввода / вывода.