R Language
Den logiska klassen
Sök…
Introduktion
Logiskt är ett läge (och en implicit klass) för vektorer.
Anmärkningar
Stenografi
TRUE
, FALSE
och NA
är de enda värdena för logiska vektorer; och alla tre är reserverade ord. T
och F
kan vara kortfattat för TRUE
och FALSE
i en ren R-session, men varken T
eller F
är reserverade, så tilldelning av icke-standardvärden till dessa namn kan ställa in användare för svårigheter.
Logiska operatörer
Det finns två typer av logiska operatörer: de som accepterar och returnerar vektorer av vilken längd som helst (elementvis operatör: !
, |
, &
, xor()
) och de som bara utvärderar det första elementet i varje argument ( &&
, ||
). Den andra sorteringen används främst som cond
argumentet till if
funktionen.
Logisk operatör | Menande | Syntax |
---|---|---|
! | Inte | ! x |
& | elementmässigt (vektoriserat) och | x & y |
&& | och (endast enstaka element) | x && y |
| | elementmässigt (vektoriserat) eller | x | y |
|| | eller (endast enstaka element) | x || y |
xor | elementmässigt (vektoriserat) exklusivt ELLER | xor (x, y) |
Observera att ||
operatören utvärderar vänstertillståndet och om vänstertillståndet är SANT utvärderas aldrig högersidan. Detta kan spara tid om det första är resultatet av en komplex operation. &&
Operatören kommer också att returnera FALSE utan utvärdering av det andra argumentet när det första elementet i det första argumentet är FALSE.
> x <- 5
> x > 6 || stop("X is too small")
Error: X is too small
> x > 3 || stop("X is too small")
[1] TRUE
För att kontrollera om ett värde är logiskt kan du använda is.logical()
.
Tvång
För att tvinga en variabel till en logisk använd as.logical()
.
> x <- 2
> z <- x > 4
> z
[1] FALSE
> class(x)
[1] "numeric"
> as.logical(2)
[1] TRUE
När du applicerar as.numeric()
på en logisk, kommer en dubbel att returneras. NA
är ett logiskt värde och en logisk operatör med en NA
kommer att returnera NA
om resultatet är tvetydigt.
Tolkning av NA: er
Se Saknade värden för detaljer.
> TRUE & NA
[1] NA
> FALSE & NA
[1] FALSE
> TRUE || NA
[1] TRUE
> FALSE || NA
[1] NA