Числа, строки и логические значения

Разбираем три основных типа данных в R и учимся определять тип значения.

Тип данных определяет, что R умеет делать со значением: считать его, сравнивать или хранить как текст.

В R чаще всего встречаются три типа: числа, строки и логические значения. Внутри одного вектора все элементы — одного типа, и это важно для корректных вычислений. Тип — это не формальность: он определяет, какие операции допустимы. Числа можно складывать и усреднять, строки — склеивать и искать в них подстроки, логические значения — комбинировать через «И» и «ИЛИ». Перепутав тип, вы получите либо ошибку, либо тихо неверный результат — поэтому понимать типы критично.

Три базовых типа

ТипЧто хранитПример
numericчисла3.14, 42
characterтекст (строки)"Москва"
logicalистина/ложьTRUE, FALSE

Числа в R по умолчанию хранятся как numeric (с плавающей точкой). Строки берут в кавычки. Логические значения пишутся заглавными буквами: TRUE и FALSE (или сокращённо T и F).

Проверка типа

Узнать тип значения помогает функция class:

class(42)
class("привет")
class(TRUE)

Вывод:

[1] "numeric"
[1] "character"
[1] "logical"

Логические значения и сравнения

Логический тип возникает при сравнениях. Сравним возрасты с порогом 18 (знак «больше» здесь нужно читать как обычный оператор сравнения):

ages <- c(25, 15, 30, 12)
ages > 18

Вывод:

[1]  TRUE FALSE  TRUE FALSE

Сравнение тоже векторное: для каждого элемента получился ответ TRUE или FALSE. Такие логические векторы — основа фильтрации данных, к которой мы придём дальше.

Как работает под капотом

Если в одном векторе смешать типы, R приводит их к самому «общему». Запись c(1, "два", TRUE) превратит всё в строки: "1" "два" "TRUE". Правило приведения такое: logical → numeric → character. Поэтому TRUE при сложении превращается в 1, а FALSE — в 0. Это удобно: sum(ages > 18) просто посчитает, сколько элементов больше 18.

Частые ошибки

  • Писать true вместо TRUE. Логические значения — заглавными буквами. true R воспримет как имя несуществующей переменной.
  • Забывать кавычки у строк. Без кавычек R решит, что это имя переменной.
  • Невольно смешивать типы. Одна строка в числовом векторе превратит весь вектор в текст и сломает арифметику.

Итог

  • Три базовых типа: numeric, character, logical.
  • Тип значения узнаём функцией class().
  • Сравнения дают логический вектор (TRUE/FALSE).
  • При смешивании типов R приводит всё к более общему: logical → numeric → character.
Проверьте себя
1. Какой тип у значения "Москва" в R?
Anumeric
Bcharacter
Clogical
Dfactor
2. Как правильно записать логическое значение «истина» в R?
Atrue
BTrue
CTRUE
D1.0
3. Что произойдёт с вектором c(1, 2, "три")?
AОшибка
BВсе элементы станут строками
CСтрока превратится в число
DОстанутся смешанные типы