Blick auf trace
. Hier ist ein Beispiel, das an der vierten Anweisung in der Basispaketfunktion var
einen Haltepunkt hinzufügt. Hier bitten wir trace
die Funktion browser
auf der sechsten Anweisung aufzurufen:
> trace(var, browser, at=6)
Tracing function "var" in package "stats"
[1] "var"
> var(1:10)
Tracing var(1:10) step 6
Called from: eval(expr, envir, enclos)
Browse[1]> n
debug: if (is.data.frame(y)) y <- as.matrix(y) else stopifnot(is.atomic(y))
Browse[2]> n
debug: stopifnot(is.atomic(y))
Browse[2]> n
debug: .Call(C_cov, x, y, na.method, FALSE)
Browse[2]> n
[1] 9.166667
Denken Sie daran, untrace
wenn Sie fertig sind. Sie können ziemlich komplexe Sachen mit trace
tun, obwohl in den meisten Fällen trace(fun.name, browser)
wahrscheinlich genug ist.
Alternativ können Sie einfach das Paket laden und den Namen der Funktion auf der Kommandozeile wie so ein:
> var
function (x, y = NULL, na.rm = FALSE, use)
{
if (missing(use))
use <- if (na.rm)
"na.or.complete"
else "everything"
na.method <- pmatch(use, c("all.obs", "complete.obs", "pairwise.complete.obs",
"everything", "na.or.complete"))
if (is.na(na.method))
stop("invalid 'use' argument")
if (is.data.frame(x))
x <- as.matrix(x)
else stopifnot(is.atomic(x))
if (is.data.frame(y))
y <- as.matrix(y)
else stopifnot(is.atomic(y))
.Call(C_cov, x, y, na.method, FALSE)
}
<bytecode: 0x000000000928ad30>
<environment: namespace:stats>
Sie dann, dass Ihr Editor kopieren und mit ihm spielen, um in, fügen Sie Ihre browser
Aussage und Schritt durch die Ergebnisse.
Danke, es ist sehr mächtig! – kayhan