Ich versuche, den tiefgestellten Operator ( "["
) für eine benutzerdefinierte Klasse zu überladen, die ich erstellt habe. Ich versuche herauszufinden, wie ich mit den folgenden Problemen umgehen kann.
a[x] = foo
vs foo = a[x]
foo = a[,x]
subskribiere, wie kann ich den ersten Parameter identifizieren? BEARBEITEN: Mein erster Punkt hat mehrere Antworten erhalten. Dabei habe ich die Antwort auf die zweite herausgefunden. Sie können die "fehlende" Funktion verwenden, um herauszufinden, welche Parameter vorhanden sind.
Hier ist ein Beispielcode:
%Vor%Ich habe eine Antwort auf diese Frage akzeptiert, da Nummer 3 für mich am wenigsten Priorität hat.
Für den ersten Aufzählungspunkt gibt es zwei Funktionen zum Überladen:
[
[<-
Die erste Funktion gibt den Wert zurück und die zweite den Wert. Siehe die Dokumentation für Extract.data.frame{base}
Siehe die Quelle für [.data.frame
als Beispiel. Du hast ein x, ein i und ein j in dieser Reihenfolge.
Sie können etwas Ähnliches tun:
%Vor%Reihenfolge ist irrelevant. Die i's und j's haben recht:
%Vor%Was den dritten Punkt betrifft, könnten Sie etwas wie folgt verwenden:
%Vor% Diese Funktion gibt die Argumente an seq
,
oder das konventionelle bewertete Argument,
%Vor% Ich bin mir jedoch nicht sicher, ob das eine gute Praxis ist. Außerdem müssen Sie die Parameter in seq
sorgfältig interpretieren, sie könnten unbenannt sein und statt to
könnte length.out
etc.
Tags und Links r