Следующее дает вам все функции в пространстве имен (включая неэкспортированные функции):
ns = asNamespace('testthat')
function_code = eapply(ns, function (f) if (is.function(f)) capture.output(f))
ns_code = paste(
names(function_code),
lapply(function_code, paste, collapse = '\n'),
sep = ' = '
)
writeLines(ns_code, filename)
Если вы хотите захватывать только экспортированные функции, вам нужно добавить дополнительный шаг, в котором вы фильтруете символы попоявляются ли они в getNamespaceExports(ns)
:
exports = mget(getNamespaceExports(ns), ns, inherits = TRUE)
function_code = lapply(exports, function (f) if (is.function(f)) capture.output(f))
…