Я хочу программным путем получить все файлы .R, содержащиеся в данном массиве, полученные с помощью функции Sys.glob()
.
Это код, который я написал:
# fetch the different ETL parts
parts <- Sys.glob("scratch/*.R")
if (length(parts) > 0) {
for (part in parts) {
# source the ETL part
source(part)
# rest of code goes here
# ...
}
} else {
stop("no ETL parts found (no data to process)")
}
У меня проблема в том, что я не могу этого сделать или, по крайней мере, я получаю следующую ошибку:
simpleError in source(part): scratch/foo.bar.com-https.R:4:151: unexpected string constant
Я пробовал разные комбинации для функции source()
, например:
source(sprintf("./%s", part))
source(toString(part))
source(file = part)
source(file = sprintf("./%s", part))
source(file = toString(part))
Не повезло.Поскольку я копирую содержимое каталога, мне нужно указать R на источник этих файлов.Поскольку это настраиваемый сценарий ETL (извлечение, преобразование и загрузка), я могу написать вручную:
source("scratch/foo.bar.com-https.R")
source("scratch/bar.bar.com-https.R")
source("scratch/baz.bar.com-https.R")
Но это грязно, и сейчас есть 3 различных шаблона извлечения.Это могут быть 8, 80 или даже 2000 различных шаблонов, поэтому писать их вручную не вариант.
Как я могу это сделать?