Ответ 1
Поскольку .rda
требует load
а для source
.R
требуется source
, я бы сделал что-то вроде этого:
file.sources = list.files(pattern="*.R")
data.sources = list.files(pattern="*.rda")
sapply(data.sources,load,.GlobalEnv)
sapply(file.sources,source,.GlobalEnv)
Обновление для чтения из нескольких папок сразу
file.sources = list.files(c("C:/folder1", "C:/folder2"),
pattern="*.R$", full.names=TRUE,
ignore.case=TRUE)
data.sources = list.files(c("C:/folder1", "C:/folder2"),
pattern="*.rda$", full.names=TRUE,
ignore.case=TRUE)
sapply(data.sources,load,.GlobalEnv)
sapply(file.sources,source,.GlobalEnv)
Обратите внимание также на использование $
в конце шаблона поиска, чтобы убедиться, что оно соответствует только, скажем, .R
в конце строки, и использование ignore.case
в случае, если некоторые из файлов названы, скажем, script.r
.