Ich habe mich gefragt, was die Unterschiede zwischen Modus, Klasse und Typ von R-Objekten sind. Der Typ eines R-Objekts kann durch die Funktion typeof (), mode by mode () und class by class () ermittelt werden.
Auch irgendwelche anderen ähnlichen Funktionen und Konzepte, die ich vermisst habe?
Danke und Grüße!
Antworten:
Mit dem
class()
wird definiert / identifiziert, welcher "Typ" ein Objekt aus Sicht der objektorientierten Programmierung in R istJede generische Funktion mit einer "Ganzzahl" -Methode wird verwendet.
typeof()
gibt den "Typ" des Objekts aus der Sicht von R an, währendmode()
der "Typ" des Objekts aus der Sicht von Becker, Chambers & Wilks (1988) angegeben wird. Letzteres ist möglicherweise mit anderen S-Implementierungen gemäß dem R Language Definition- Handbuch besser kompatibel .Ich würde wahrscheinlich auf der Seite der Verwendung
typeof()
in den meisten Fällen irren, es sei denn, es war für die Übergabe von R-Objekten an kompilierten Code, wostorage.mode()
nützlich sein wird.Dies wird sinnvollerweise in der oben verlinkten R-Sprachdefinition erörtert.
quelle
<-
und=
für die variable Zuordnung.Von: https://www.mail-archive.com/[email protected]/msg17169.html :
'mode' ist eine sich gegenseitig ausschließende Klassifizierung von Objekten nach ihrer Grundstruktur. Die "atomaren" Modi sind numerisch, komplex, charakterlich und logisch. Rekursive Objekte haben Modi wie 'Liste' oder 'Funktion' oder einige andere. Ein Objekt hat nur einen Modus.
'class' ist eine Eigenschaft, die einem Objekt zugewiesen wird und bestimmt, wie generische Funktionen damit arbeiten. Es ist keine sich gegenseitig ausschließende Klassifikation. Wenn einem Objekt keine bestimmte Klasse zugewiesen ist, z. B. ein einfacher numerischer Vektor, entspricht seine Klasse normalerweise dem Modus.
Das Ändern des Modus eines Objekts wird oft als "Zwang" bezeichnet. Der Modus eines Objekts kann geändert werden, ohne dass die Klasse geändert werden muss.
quelle
Der Hauptunterschied zwischen class und typeof besteht darin, dass der erste vom Benutzer definiert werden kann, der Typ jedoch nicht. Definieren Sie beispielsweise eine Liste
Es ist sehr nützlich, einem benutzerdefinierten Objekt einen bestimmten Klassennamen zu geben, um Programme zu schreiben. Benutzerdefinierte Objekte können auf ähnliche Weise wie in objektorientierten Programmiersprachen mit Tags versehen werden.
quelle
R
Dokumentation fürtypeof
undclass
ist die Aussage über "Hauptunterschied" falsch.class
ist ein Attribut eines Objekts, das unabhängig von seinem internen Speichermodus zugewiesen werden kann, während "typeof den (R-internen) Typ oder den Speichermodus eines Objekts bestimmt". Eine beschreibt eine logische Eigenschaft, während die andere eine physikalische Eigenschaft eines Objekts ist.