So implementieren Sie den Subset-Ersatz für S4-Methoden

8

Ich schreibe eine S4-Klasse, in der die internen Daten in einer Datenbank gespeichert sind und die Klasse meist ein Gatekeeper für den Zugriff auf und die Änderung von Informationen in der Datenbank ist. Die Klasse würde Methoden wie getInfoA und getInfoA<- zum Extrahieren und Festlegen bestimmter Informationen haben.

Meine Frage bezieht sich auf den folgenden Fall:

%Vor%

Hier wird der Setter vor der Zuweisung in Teilmengen unterteilt. Normalerweise wird dies automatisch gelöst, wenn die Daten in Standard-R-Strukturen gespeichert werden, aber wie kann man mit diesen Daten vernünftig umgehen, wenn die Daten an anderer Stelle gespeichert werden? Es gibt eine [<- Primitive innerhalb von R, aber es ist mir unklar, wie das Dispatching abläuft und wo und wie man es abfängt ...

    
ThomasP85 04.05.2015, 11:36
quelle

1 Antwort

1

Leider habe ich keine gute Erklärung dafür, aber es funktioniert out of the box. Vielleicht könnte ein R-Experte das klären.

Der Hauptgrund könnte sein, dass R niemals etwas ersetzt, sondern eine neue Kopie erstellt des Objekts (mit einigen Ausnahmen wie die primitiven Operatoren, z. B. [[<- das könnte unter bestimmten Bedingungen ersetzen).

%Vor%

Was also scheinbar beim Aufruf von getLetters(a)[1:5] <- letters[1:5] geschieht, ist folgendes:

%Vor%     
sgibb 17.05.2015, 00:03
quelle

Tags und Links