Осмотр таблицы: 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.frame length(df) вернёт число колонок, а не строк. Строки — это nrow.
  • Печатать огромную таблицу целиком. Используйте head, иначе консоль завалит тысячами строк.

Итог

  • head/tail — начало и конец таблицы.
  • nrow, ncol, dim — размеры.
  • str — типы колонок и примеры значений.
  • summary — числовая сводка или частоты категорий.
Проверьте себя
1. Какая функция показывает первые строки таблицы?
Atop()
Bhead()
Cfirst()
Dbegin()
2. Что показывает функция str(df)?
AТолько число строк
BТип каждой колонки и примеры значений
CГрафик распределения
DСумму по колонкам
3. Что вернёт summary для числовой колонки?
AТолько среднее
BМинимум, квартили, среднее и максимум
CЧастоты категорий
DКоличество пропусков