Числа, строки и логические значения
Разбираем три основных типа данных в 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. Логические значения — заглавными буквами.trueR воспримет как имя несуществующей переменной. - Забывать кавычки у строк. Без кавычек R решит, что это имя переменной.
- Невольно смешивать типы. Одна строка в числовом векторе превратит весь вектор в текст и сломает арифметику.
Итог
- Три базовых типа:
numeric,character,logical. - Тип значения узнаём функцией
class(). - Сравнения дают логический вектор (TRUE/FALSE).
- При смешивании типов R приводит всё к более общему: logical → numeric → character.