Осмотр таблицы: head, str, summary
Прежде чем анализировать данные, их надо осмотреть. Учимся быстро оценивать таблицу.
Осмотр данных — первый шаг анализа: понять размер таблицы, типы колонок и распределение значений.
Получив новую таблицу, опытный аналитик не бросается строить графики. Сначала он смотрит: сколько строк и столбцов, какие типы данных, есть ли пропуски, разумные ли диапазоны. R даёт для этого несколько незаменимых функций.
Этот шаг легко недооценить, но именно здесь отсеивается большинство будущих ошибок. Числа, прочитанные как текст; даты в неожиданном формате; пропуски, спрятанные под видом нуля; невозможный возраст в 200 лет — всё это всплывает при беглом осмотре и тихо портит анализ, если осмотр пропустить. Поэтому правило профессионала: сначала «познакомься» с данными через str, summary и head, и только потом считай и рисуй. Несколько минут осмотра экономят часы отладки.
Первые строки: head и tail
head показывает начало таблицы, tail — конец. Это спасает, когда строк тысячи:
df <- data.frame(
name = c("Аня", "Борис", "Вера", "Глеб"),
age = c(25, 30, 22, 35)
)
head(df, 2)Вывод:
name age 1 Аня 25 2 Борис 30
Размер таблицы
Узнать габариты помогают nrow, ncol и dim:
nrow(df)
ncol(df)
dim(df)Вывод:
[1] 4 [1] 2 [1] 4 2
Структура: str
Функция str (structure) — лучший друг при знакомстве с данными. Она показывает тип каждой колонки и примеры значений:
str(df)Вывод:
'data.frame': 4 obs. of 2 variables: $ name: chr "Аня" "Борис" "Вера" "Глеб" $ age : num 25 30 22 35
Сразу видно: 4 наблюдения, 2 переменные, name — текст (chr), age — число (num).
Сводка: summary
summary по каждой числовой колонке выдаёт минимум, квартили, среднее и максимум:
summary(df$age)Вывод:
Min. 1st Qu. Median Mean 3rd Qu. Max. 22.00 24.25 27.50 28.00 31.25 35.00
Как работает под капотом
Функция summary «умная»: она ведёт себя по-разному в зависимости от типа колонки. Для числовой колонки считает квартили и среднее, а для фактора — частоты категорий. Такое поведение называется обобщённой функцией (generic): одно имя, разная реализация под разные типы. Поэтому summary(df) по всей таблице автоматически подберёт нужную сводку для каждого столбца.
Частые ошибки
- Сразу строить графики на «грязных» данных. Сначала
strиsummary— они выявят пропуски и неверные типы. - Путать nrow и length. Для
data.framelength(df)вернёт число колонок, а не строк. Строки — этоnrow. - Печатать огромную таблицу целиком. Используйте
head, иначе консоль завалит тысячами строк.
Итог
head/tail— начало и конец таблицы.nrow,ncol,dim— размеры.str— типы колонок и примеры значений.summary— числовая сводка или частоты категорий.