Если функции не находятся в пакете и получены из файлов через source()
, то, возможно, ссылки на источники могут предоставить что-то для работы.Аргумент keep.source = TRUE
обязателен, и прочитайте статью Дункана Мердока R Journal
Вот краткий пример:
> setwd("./Downloads/")
> source("../foo.R", keep.source=TRUE) ## if options("keep.source") is FALSE
> bar
function(a, b) {
a + b
}
> body(bar)
{
a + b
}
attr(,"srcfile")
../foo.R
attr(,"wholeSrcref")
bar <- function(a, b) {
a + b
}
> srcref <- attr(body(bar), "srcref")[[1]]
> attr(srcref, "srcfile")
../foo.R
> ls(attr(srcref, "srcfile"))
[1] "Enc" "encoding" "filename" "timestamp" "wd"
> attr(srcref, "srcfile")$filename
[1] "../foo.R"
> attr(srcref, "srcfile")$wd
[1] "/home/gavin/Downloads"
Конечно, это предполагает, что вы неНе знаю, откуда берутся исходные функции, и все же функции должны быть получены ...
Если это в пакете, то вы можете иметь данные в каталоге ./data
или в произвольном порядке.каталоги в ./inst/
.Вы можете использовать data()
наборов данных toload из предыдущего и system.file()
для любого файла в пакете.См. Соответствующие страницы справки.