Есть ли простой способ просмотра источника R-пакета (или метода в пакете) из интерактивной среды?Просмотр источника пакета R
22
A
ответ
18
Просто введите имя функции/метода без скобок:
R> base::rev.default
function (x)
if (length(x)) x[length(x):1L] else x
<environment: namespace:base>
Смотрите также R-Help Desk - Доступ к Sources в R News Volume 6/4, October 2006.
9
Чтобы узнать, какие методы вы хотите увидеть, написать methods(funcOfInterest)
Иногда не хватает на print(funcOfInterest.class)
. Тогда попробуйте print(getAnywhere(funcOfInterest.class))
.
15
Как вы считаете, исходный код зависит от типа функции. См. my answer к этому связанному вопросу.
Как указано в rcs, если вы хотите указать пакет, вы можете использовать ::
.
> lattice::xyplot
function (x, data, ...)
UseMethod("xyplot")
<environment: namespace:lattice>
Не все функции из пакета будут экспортированы (то есть сделаны общедоступными); для этого вам нужно использовать :::
.
> lattice::xyplot.formula
Error: 'xyplot.formula' is not an exported object from 'namespace:lattice'
> lattice:::xyplot.formula
function (x, data = NULL, allow.multiple = is.null(groups) ||
outer, outer = !is.null(groups), auto.key = FALSE, aspect = "fill",
panel = lattice.getOption("panel.xyplot"), prepanel = NULL,
scales = list(), strip = TRUE, groups = NULL, xlab, xlim,
ylab, ylim, drop.unused.levels = lattice.getOption("drop.unused.levels"),
..., lattice.options = NULL, default.scales = list(), subscripts = !is.null(groups),
subset = TRUE)
{
formula <- x
dots <- list(...)
# etc.
Обратите внимание, что если вы работаете в интерактивном режиме, вам не нужен явный вызов 'print'. – Dason