Prüfe, ob die Variable den Wert '' hat

7

In einem Skript, das ich versuche, zu laufen, werden Variablen manchmal mit '' gefüllt (was bedeutet: vollständig leer), z.B.

%Vor%

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 .

    
rdatasculptor 15.07.2013, 13:01
quelle

2 Antworten

18

'' 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 :

%Vor%

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 :

%Vor%

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:

%Vor%

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.

    
Konrad Rudolph 15.07.2013, 13:03
quelle
2

In stringi package gibt es dafür eine Funktion.

%Vor%

Sie können dieses Paket auch von github installieren: Ссылка

    
bartektartanus 15.07.2013 13:07
quelle

Tags und Links