In einem Skript, das ich versuche, zu laufen, werden Variablen manchmal mit ''
gefüllt (was bedeutet: vollständig leer), z.B.
Kennt jemand eine Methode, um zu überprüfen, ob Variable den Wert ''
hat?
is.null(variable)
scheint nicht zu funktionieren. ''
ist nicht identisch mit NULL
.
''
ist ein leeres Zeichen. Es bedeutet nicht "vollständig leer" - das ist tatsächlich NULL
.
Um es zu testen, prüfen Sie einfach auf Gleichheit:
%Vor% Wenn Sie prüfen möchten, ob eine Variable existiert , müssen Sie ... exists
:
Aber tatsächlich gibt es nur sehr wenige Anwendungsfälle für exists
im normalen Code, da Sie als Autor des Codes wissen welche Variablen existieren und welche nicht. Es ist hauptsächlich in Bibliotheksfunktionen nützlich.
Aber der Fehler, den Sie bekommen,
fehlender Wert, wo TRUE / FALSE benötigt wird
bedeutet nicht , dass die Variable nicht existiert. Stattdessen kann if
nicht mit fehlenden Werten umgehen - also NA
. Ein NA
tritt als Ergebnis vieler Berechnungen auf, die selbst einen NA
-Wert enthalten. Wenn Sie beispielsweise NA
mit einem beliebigen Wert ( even NA
selbst ) vergleichen, erhalten Sie NA
:
Da if
TRUE
oder FALSE
erwartet, kann es nicht mit NA
umgehen. Wenn Ihre Werte NA
haben können, müssen Sie dies explizit überprüfen:
Es ist jedoch normalerweise eine bessere Idee, NA
-Werte von Anfang an von Ihren Daten auszuschließen, damit sie sich nicht in einer Situation wie der obigen ausbreiten.
In stringi
package gibt es dafür eine Funktion.
Sie können dieses Paket auch von github installieren: Ссылка