Поиск…


Вступление

Логический - это режим (и неявный класс) для векторов.

замечания

стенография

TRUE , FALSE и NA - единственные значения для логических векторов; и все три зарезервированные слова. T и F могут быть сокращены для TRUE и FALSE в чистом сеансе R, но ни T ни F не зарезервированы, поэтому присвоение значений, отличных от значений по умолчанию, этим именам может привести к затруднениям пользователей.

Логические операторы

Существует два вида логических операторов: те, которые принимают и возвращают векторы любой длины (элементарные операторы: ! , | , & , xor() ) и те, которые оценивают только первый элемент в каждом аргументе ( && , || ). Второй сорт в основном используется как аргумент cond для функции if .

Логический оператор Имея в виду Синтаксис
! Не !Икс
& элементный (векторизованный) и x & y
&& и (только один элемент) x && y
| элементный (векторизованный) или x | Y
|| или (только один элемент) x || Y
исключающее элементный (векторный) исключающий ИЛИ XOR (х, у)

Заметим, что || оператор оценивает левое условие, и если левое условие TRUE, правая сторона никогда не оценивается. Это может сэкономить время, если первое является результатом сложной операции. Оператор && также возвращает FALSE без оценки второго аргумента, когда первый элемент первого аргумента FALSE.

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

Чтобы проверить, является ли значение логическим, вы можете использовать is.logical() .

принуждение

Чтобы принудительно использовать переменную для логического использования, используйте as.logical() .

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

При применении as.numeric() к логическому, возвращается double. NA - логическое значение, а логический оператор с NA возвращает NA если результат неоднозначен.

Интерпретация НС

Подробнее см. Отсутствующие значения .

> 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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow