Ich möchte den Quellcode einer Funktion betrachten, um zu sehen, wie sie funktioniert. Ich weiß, dass ich eine Funktion drucken kann, indem ich ihren Namen am Prompt eingebe:
> t
function (x)
UseMethod("t")
In diesem Fall, was bedeutet UseMethod("t")
? Wie finde ich den tatsächlich verwendeten Quellcode, zum Beispiel bei: t(1:10)
?
Gibt es einen Unterschied zwischen dem, wenn ich UseMethod
sehe, und wenn ich standardGeneric
und showMethods
sehe, wie bei with
?
> with
standardGeneric für "with" definiert aus Paket "base"
function (data, expr, ...)
standardGeneric("with")
Methoden können für Argumente definiert werden: data
Verwenden Sie showMethods("with") für derzeit verfügbare.
In anderen Fällen sehe ich, dass R-Funktionen aufgerufen werden, aber ich kann den Quellcode für diese Funktionen nicht finden.
> ts.union
function (..., dframe = FALSE)
.cbind.ts(list(...), .makeNamesTs(...), dframe = dframe, union = TRUE)
> .cbindts
Fehler: Objekt '.cbindts' nicht gefunden
> .makeNamesTs
Fehler: Objekt '.makeNamesTs' nicht gefunden
Wie finde ich Funktionen wie .cbindts
und .makeNamesTs
?
In anderen Fällen gibt es ein bisschen R-Code, aber die meiste Arbeit scheint an anderer Stelle erledigt zu werden.
> matrix
function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
{
if (is.object(data) || !is.atomic(data))
data <- as.vector(data)
.Internal(matrix(data, nrow, ncol, byrow, dimnames, missing(nrow),
missing(ncol)))
}
> .Internal
function (call) .Primitive(".Internal")
> .Primitive
function (name) .Primitive(".Primitive")
Wie finde ich heraus, was die Funktion .Primitive
macht? Ebenso rufen einige Funktionen .C
, .Call
, .Fortran
, .External
oder .Internal
auf. Wie finde ich den Quellcode dafür?