Ich möchte dies vorwegnehmen, indem ich sage, dass ich ein absoluter Programmieranfänger bin. Entschuldigen Sie bitte, wie grundlegend diese Frage ist.
Ich versuche, "atomare" Klassen in R besser zu verstehen, und vielleicht gilt dies für Klassen in der Programmierung im Allgemeinen. Ich verstehe den Unterschied zwischen einer Zeichen-, einer logischen und einer komplexen Datenklasse, aber ich habe Schwierigkeiten, den grundlegenden Unterschied zwischen einer numerischen Klasse und einer ganzzahligen Klasse zu finden.
Angenommen, ich habe einen einfachen Vektor x <- c(4, 5, 6, 6)
von Ganzzahlen. Es wäre sinnvoll, wenn dies eine Ganzzahlklasse wäre. Aber wenn ich es tue, class(x)
bekomme ich [1] "numeric"
. Dann, wenn ich diesen Vektor in eine Ganzzahlklasse konvertiere x <- as.integer(x)
. Es wird dieselbe exakte Liste von Zahlen zurückgegeben, außer dass die Klasse unterschiedlich ist.
Meine Frage ist, warum dies der Fall ist und warum die Standardklasse für einen Satz von Ganzzahlen eine numerische Klasse ist und welche Vor- und Nachteile es hat, wenn eine Ganzzahl anstelle einer Ganzzahl als numerisch festgelegt wird.
x <- 1; is.integer(x); is.numeric(x)
dann x <- 1L; is.integer(x); is.numeric(x)
und Sie können möglicherweise einen kleinen Unterschied erkennen. Ganzzahlige Klassen werden eher zum Übergeben von Variablen aus C-Konstrukten und auch in R-Strukturen verwendet. Es gibt jedoch noch viel mehr.
as.integer(c(4.1, 5.2, 6.3, 6.4))
Ihnen, den Unterschied zu verstehen? Sie müssen verstehen, dass die interne Darstellung und das, was gedruckt wird, überhaupt nicht identisch sind. Lesen Sie auf jeden Fall etwas über Datentypen in Computersprachen.