2017-02-13 1 views
3

Ich bin immer noch ein Anfänger Benutzer in R, und habe Advanced R von Hadley gelesen, um meine R-Programmierkenntnisse zu verbessern.NULL Art von Objekt in R

Ich kam in seinem Buch über diesen Code:

NULL>0 

Die Ausgabe für diesen Code logical(0) ist.

Ich habe zwei Fragen zu diesem Thema:

Frage 1: Was bedeutet logical(0)?

Frage 2: Ich hätte einen TRUE/FALSE als Rückgabewert erwartet. Dies ist, weil er über die Regeln für die Nötigung in R spricht, insbesondere dass < < < Charakter (am wenigsten flexibel zu flexibelsten). Daher nehme ich an, dass NULL vom Typ Logisch ist.

Ich bin nicht wirklich sicher, wo NULL in diese Gleichung passt. Ich würde mich über jede Erklärung freuen.

Vielen Dank im Voraus.

Antwort

4

logical(0) ist ein logischer Vektor der Länge Null. NULL ist ein eigener Typ, wie typeof(NULL) zeigt, und enthält nichts, wie length(NULL) zeigt.

Es macht keinen Sinn, NULL mit 0 zu vergleichen; Es ist kein numerischer Wert oder gar ein Wert. Es ist keine Antwort auf den Vergleich möglich und daher wird kein logischer Wert zurückgegeben, sondern nur ein leerer Vektor.

Betrachten wir zum Beispiel die Ausgabe von:

c(TRUE, FALSE, NULL) 

The NULL ignoriert wird, anstatt einen Fehler oder Nachgeben umgewandelt wird. Sie sollten es als buchstäblich nichts, im Gegensatz zu NA, die ein Hinweis auf einen fehlenden Wert eines bestimmten Typs ist - versuchen, NULL durch NA in der obigen Verkettung ersetzen.