Suche…


Einführung

Logisch ist ein Modus (und eine implizite Klasse) für Vektoren.

Bemerkungen

Stenografie

TRUE , FALSE und NA sind die einzigen Werte für logische Vektoren. und alle drei sind reservierte Wörter. T und F können in einer reinen R-Sitzung eine Abkürzung für TRUE und FALSE , aber weder T noch F sind reserviert. Daher kann die Zuweisung von Nicht-Standardwerten zu diesen Namen zu Problemen führen.

Logische Operatoren

Es gibt zwei Arten von logischen Operatoren: solche, die Vektoren beliebiger Länge annehmen und zurückgeben (elementweise Operatoren: ! , | , & , xor() ) und diejenigen, die nur das erste Element in jedem Argument ( && , || ) auswerten. Die zweite Sortierung wird hauptsächlich als cond Argument für die if Funktion verwendet.

Logischer Operator Bedeutung Syntax
! Nicht ! x
& elementweise (vektorisiert) und x und y
&& und (nur ein Element) x && y
| elementweise (vektorisiert) oder x | y
|| oder (nur ein Element) x || y
xor elementweise (vektorisiert) exklusives ODER xor (x, y)

Beachten Sie, dass der || Der Operator wertet die linke Bedingung aus und wenn die linke Bedingung TRUE ist, wird die rechte Seite niemals ausgewertet. Dies kann Zeit sparen, wenn die erste das Ergebnis einer komplexen Operation ist. Der Operator && gibt ebenfalls FALSE zurück, ohne das zweite Argument auszuwerten, wenn das erste Element des ersten Arguments FALSE ist.

> x <- 5
> x > 6 || stop("X is too small")
Error: X is too small
> x > 3 || stop("X is too small")
[1] TRUE

Um zu prüfen, ob ein Wert ein logischer Wert ist, können Sie die Funktion is.logical() verwenden.

Zwang

Um eine Variable in eine logische Funktion zu zwingen, verwenden Sie die Funktion as.logical() .

> x <- 2
> z <- x > 4
> z
[1] FALSE
> class(x)
[1] "numeric"
> as.logical(2)
[1] TRUE

Beim Anwenden von as.numeric() auf ein Logisches wird ein Double zurückgegeben. NA ist ein logischer Wert, und ein logischer Operator mit einer NA gibt NA wenn das Ergebnis mehrdeutig ist.

Interpretation von NAs

Weitere Informationen finden Sie unter Fehlende Werte .

> TRUE & NA
[1] NA
> FALSE & NA
[1] FALSE
> TRUE || NA
[1] TRUE
> FALSE || NA
[1] NA


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow