Введение в R версия 3.5.2 (2018-12-20). Заметки по R: среда программирования для анализа данных и графики - страница 5



Так же как числовые векторы, R позволяет манипулирование логическими величинами. У элементов логического вектора могут быть значение TRUE, FALSE, и NA (для «не доступно», см. ниже). Первые два часто сокращаются как T и F, соответственно. Заметим, однако, что T и F – только переменные, которые установлены в TRUE и FALSE по умолчанию, но не зарезервированные слова и, следовательно, могут быть перезаписаны пользователем. Следовательно, следует всегда использовать TRUE и FALSE.

Логические векторы генерируются условиями. Например:

> temp <– x> 13

устанавливает temp как вектор одинаковой длины как x со значением FALSE, соответствующих тем элементам x, где условие не соблюдается, и TRUE, где имеет место.

Логическими операторами являются <, <=,>,> =, == для точного равенства и!= для неравенства. Кроме того, если c1 и c2 – логические выражения, то c1&c2 – их пересечение («и»), c1|c2 – их объединение («или»), и!c1 – отрицание c1.

Логические векторы могут использоваться в обычной арифметике, в том случае они преобразуются в числовые векторы, FALSE равно 0 и TRUE равно 1. Однако есть ситуации, где логические векторы и их преобразованные числовые дубликаты не эквивалентны, например см. следующий подраздел.

2.5. Пропущенные значения

В некоторых случаях компоненты вектора не могут быть полностью известны. Когда элемент или значение «не доступно» или «отсутствует значение» в статистическом смысле, место в пределах вектора может быть зарезервировано, присваивая ему специальное значение NA. Вообще любое действие с NA дает NA. Обоснование этого правила просто состоит в том, что, если спецификация действия является неполной, то результат не может быть известен и, следовательно, не доступен.

Функция is.na (x) дает логический вектор одинакового размера с x со значением TRUE, если и только если соответствующий элемент в x равен NA.

> z <– c (1:3,NA); ind <– is.na (z)

Заметим, что логическое выражение x == NA очень отличается от is.na (x), так как NA не действительно значение, а маркер для количества, которое не доступно. Таким образом, x == NA – вектор одинаковой длины с x, все значения которого равны NA, поскольку само логическое выражение является неполным и, следовательно, неразрешимым.

Заметим, что существует второй вид «пропущенного» значения, которое произведено числовым вычислением, так называемое значение «Не Число» – NaN. Пример:

> 0/0

или

> Inf – Inf

который оба дают NaN, так как результат не может быть определен заметно.

В итоге, is.na (xx) равно TRUE и для NA и для значения NaN. При дифференцировании их, is.nan (xx) равно TRUE только для NaN.

Отсутствующие значения иногда печатаются как , когда символьные векторы напечатаны без кавычек.

2.6. Векторы символов

Символьные количества и символьные векторы часто используются в R, например, как метки рисунка. Где необходимо они обозначены последовательностью символов, разграниченных символом двойной кавычки, например, «x-значением», «Новая итерация заканчивается».

Символьные строки вводятся, используя любые двойные (») или одинарные (») кавычки, но напечатаны, используя двойные кавычки (или иногда без кавычек). Они используют escape-последовательности C-стиля, используя \, поскольку символ ESC, таким образом, \\вводится и печатается как \\, и в двойных кавычках, «вводится как \». Другие полезные escape-последовательности: \n