Zwei R-Fragen:
- Was ist der Unterschied zwischen dem Typ (zurückgegeben von
typeof
) und der Klasse (zurückgegeben vonclass
) einer Variablen? Ist der Unterschied ähnlich wie beispielsweise in der C ++ - Sprache? - Was sind mögliche Arten und Klassen von Variablen?
Antworten:
In R hat jedes "Objekt" ein
mode
und einclass
. Ersteres stellt dar, wie ein Objekt im Speicher gespeichert wird (numerisch, Zeichen, Liste und Funktion), während letzteres seinen abstrakten Typ darstellt. Beispielsweise:Wie Sie sehen können, werden Datenrahmen im Speicher gespeichert,
list
aber sie werden indata.frame
Objekte eingewickelt . Letzteres ermöglicht die Verwendung von Mitgliedsfunktionen sowie Überladungsfunktionen wie zprint
mit einem benutzerdefinierten Verhalten.typeof
(storage.mode
) geben normalerweise die gleichen Informationen wie,mode
aber nicht immer. Ein typisches Beispiel:Die Gründe dafür finden Sie hier :
Der Link, den ich oben gepostet habe, enthält auch eine Liste aller nativen R
basic types
(Vektoren, Listen usw.) und allercompound objects
(Faktoren und Datenrahmen) sowie einige Beispiele dafürmode
, wietypeof
undclass
für jeden Typ verwandt sind.quelle
oldClass(matrix(1:10, 2,5)) # NULL
type
bezieht sich wirklich auf die verschiedenen Datenstrukturen, die in R verfügbar sind. Diese Diskussion im Handbuch zur R-Sprachdefinition kann Ihnen den Einstieg in Objekte und Typen erleichtern.Auf der anderen Seite
class
bedeutet etwas anderes in R als das, was Sie vielleicht erwarten. Aus dem Handbuch zur R-Sprachdefinition (das mit Ihrer Version von R geliefert wurde):quelle