365 Stimmen

Wie kann man prüfen, ob ein Objekt (eine Variable) in R definiert ist?

Ich möchte überprüfen, ob eine Variable in R definiert ist - ohne einen Fehler zu erhalten. Wie kann ich das tun?

Meine Versuche (nicht erfolgreich):

> is.na(ooxx)
Error: object 'ooxx' not found
> is.finite(ooxx)
Error: object 'ooxx' not found

Danke!

6voto

Wenn Ihnen die Verwendung von Anführungszeichen nichts ausmacht, können Sie diese verwenden:

existiert("x")

Wenn Sie keine Anführungszeichen verwenden möchten, können Sie dies tun:

exists(deparse(substitute(x)))

2voto

smoe Punkte 390

Es kann Situationen geben, in denen Sie den Namen der gesuchten Variablen nicht genau kennen, z. B. wenn ein Array von Ergebnissen durch ein Warteschlangensystem erstellt wurde. Diese können möglicherweise mit "ls" und seinem Argument "pattern", das einen regulären Ausdruck erwartet, angegangen werden.

Die Funktion "exists" könnte auf diese Weise neu implementiert werden als

exists <-function(variablename) {
   #print(ls(env=globalenv()))
   return(1==length(ls(pattern=paste("^",variablename,"$",sep=""),env=globalenv())))
}

Bei der Vorbereitung dieser Antwort war ich ein wenig überrascht über die Notwendigkeit der Angabe der Umgebung beim Aufruf von ls() innerhalb einer Funktion. Vielen Dank dafür, Stackoverflow! Es gibt auch ein Attribut "all.names", das ich auf true setzen sollte, aber ausgelassen habe.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X