Должно быть что-то, чего я не понимаю в команде source()
в R. Я все еще новичок в этом, но я не могу понять, как она получает свои каталоги! Моя проблема заключается в следующем:
У меня есть скрипт-оболочка, wrapper.R
, и исходный файл, содержащий некоторые функции, functions.R
. Оба они находятся в одном каталоге. Если я вызываю source('functions.R')
внутри скрипта-обертки, стоя внутри каталога, где находятся оба файла, то все нормально. Однако я хочу иметь возможность запускать свой wrapper.R
скрипт из какого-нибудь другого каталога, то есть не из того, где находятся эти скрипты. Если я запускаю свою оболочку для другого каталога, она не работает, и я получаю ошибку cannot open the file
.
Я погуглил и нашел много разных тем, но этот вопрос казался быть очень ясным. Насколько я понимаю, то, как я это делаю, должно работать. Ясно, я что-то недопонимаю. Мое чтение этой ветки наводит меня на мысль, что source()
работает с каталогом, в котором находится файл, вызывающий source()
. Мое чтение также наводит меня на мысль, что мне не следует использовать chdir = TRUE
, так как я хочу сохранить рекламируемый относительный каталог .
Видя, что это не работает... что я неправильно понимаю? Как я могу использовать исходные файлы в том же каталоге, что и мой скрипт-оболочку, когда они вызываются из другого места?
getwd()
, и вы можете сбросить его с помощьюsetwd()
. Но вы всегда можете просто сделать что-то вроде source(c:\...) и это должно сработать. - person Kristofersen   schedule 15.03.2017source
файлов, фактически не зная каталога, и все еще вызывать функцию-оболочку из какого-либо другого каталога? - person erikfas   schedule 15.03.2017