In R gibt es zwei Arten von booleschen Operatoren: elementweise Operatoren (& und |) und kurzschließende Operatoren (&& und ||). Der Hauptunterschied zwischen diesen Operatoren liegt in ihrer Anwendung und ihrem Verhalten:
- Elementweise Operatoren (
&und|):
- & (Und): Gibt für jedes Element eines Vektors
TRUEzurück, wenn beide entsprechenden ElementeTRUEsind; sonstFALSE. - | (Oder): Gibt für jedes Element eines Vektors
TRUEzurück, wenn mindestens eines der entsprechenden ElementeTRUEist; sonstFALSE. - Diese Operatoren werden auf alle Elemente eines Vektors angewendet und liefern einen Vektor als Ergebnis. Beispiel:
c(TRUE, FALSE, TRUE) & c(TRUE, TRUE, FALSE)
# Gibt zurück: TRUE FALSE FALSE
c(TRUE, FALSE, TRUE) | c(FALSE, TRUE, FALSE)
# Gibt zurück: TRUE TRUE TRUE- Kurzschließende Operatoren (
&&und||):
- && (Und): Evaluiert das linke Argument und gibt
FALSEzurück, wenn esFALSEist, ohne das rechte Argument zu evaluieren. Evaluiert das rechte Argument nur, wenn das linkeTRUEist. - || (Oder): Evaluiert das linke Argument und gibt
TRUEzurück, wenn esTRUEist, ohne das rechte Argument zu evaluieren. Evaluiert das rechte Argument nur, wenn das linkeFALSEist. - Diese Operatoren werden nur auf das erste Element der Vektoren angewendet und liefern einen einzelnen Wert (
TRUEoderFALSE) als Ergebnis. Beispiel:
c(TRUE, FALSE) && c(FALSE, TRUE)
# Gibt zurück: FALSE
c(FALSE, FALSE) || c(TRUE, FALSE)
# Gibt zurück: TRUEZusammenfassung:
- Verwenden Sie
&und|, wenn Sie elementweise Operationen auf Vektoren durchführen möchten. - Verwenden Sie
&&und||in Situationen, in denen Sie nur das erste Element evaluieren oder kurzschließende Logik verwenden möchten (z. B. in Bedingungen vonif-Anweisungen).