Самый простой способ создания сводных таблиц в R


Самый простой способ создать сводные таблицы в R — использовать функции описать() и описатьBy() из библиотеки psych .

library (psych)

#create summary table
describe(df)

#create summary table, grouped by a specific variable
describeBy(df, group=df$var_name)

В следующих примерах показано, как использовать эти функции на практике.

Пример 1: создание базовой сводной таблицы

Предположим, у нас есть следующий фрейм данных в R:

#create data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'C', 'C', 'C'),
 points=c(15, 22, 29, 41, 30, 11, 19),
 rebounds=c(7, 8, 6, 6, 7, 9, 13),
 steals=c(1, 1, 2, 3, 5, 7, 5))

#view data frame
df

 team points rebounds steals
1 A 15 7 1
2 A 22 8 1
3 B 29 6 2
4 B 41 6 3
5 C 30 7 5
6 C 11 9 7
7 C 19 13 5

Мы можем использовать функцию description() для создания сводной таблицы для каждой переменной во фрейме данных:

library (psych) 

#create summary table
describe(df)

 vars n mean sd median trimmed mad min max range skew kurtosis
team\* 1 7 2.14 0.90 2 2.14 1.48 1 3 2 -0.22 -1.90
points 2 7 23.86 10.24 22 23.86 10.38 11 41 30 0.33 -1.41
rebounds 3 7 8.00 2.45 7 8.00 1.48 6 13 7 1.05 -0.38
steals 4 7 3.43 2.30 3 3.43 2.97 1 7 6 0.25 -1.73
 se
team\* 0.34
points 3.87
rebounds 0.93
steals 0.87

Вот как интерпретировать каждое значение в выводе:

  • vars : номер столбца
  • n : Количество действительных случаев
  • среднее : среднее значение
  • median : среднее значение
  • trimmed : усеченное среднее (по умолчанию обрезается 10% наблюдений с каждого конца)
  • mad : Среднее абсолютное отклонение (от медианы)
  • мин : минимальное значение
  • макс : максимальное значение
  • диапазон : диапазон значений (макс. – мин.)
  • skew : асимметрия
  • эксцесс : эксцесс
  • se : стандартная ошибка

Важно отметить, что любая переменная со звездочкой (*) рядом с ней является категориальной или логической переменной, которая была преобразована в числовую переменную со значениями, которые представляют числовой порядок значений.

В нашем примере переменная team была преобразована в числовую переменную, поэтому сводную статистику для нее не следует интерпретировать буквально.

Также обратите внимание, что вы можете использовать аргумент fast=TRUE только для расчета наиболее распространенных сводных статистических данных:

#create smaller summary table
describe(df, fast= TRUE )

 vars n mean sd min max range se
team 1 7 NaN NA Inf -Inf -Inf NA
points 2 7 23.86 10.24 11 41 30 3.87
rebounds 3 7 8.00 2.45 6 13 7 0.93
steals 4 7 3.43 2.30 1 7 6 0.87

Мы также можем вычислить сводную статистику только для определенных переменных во фрейме данных:

#create summary table for just 'points' and 'rebounds' columns
describe(df[ , c('points', 'rebounds')], fast= TRUE )

 vars n mean sd min max range se
points 1 7 23.86 10.24 11 41 30 3.87
rebounds 2 7 8.00 2.45 6 13 7 0.93

Пример 2. Создание сводной таблицы, сгруппированной по определенной переменной

В следующем коде показано, как использовать функцию descriptionBy() для создания сводной таблицы для фрейма данных, сгруппированного по переменной team:

#create summary table, grouped by 'team' variable
describeBy(df, group=df$team, fast= TRUE )

 Descriptive statistics by group 
group: A
 vars n mean sd min max range se
team 1 2 NaN NA Inf -Inf -Inf NA
points 2 2 18.5 4.95 15 22 7 3.5
rebounds 3 2 7.5 0.71 7 8 1 0.5
steals 4 2 1.0 0.00 1 1 0 0.0
------------------------------------------------------------ 
group: B
 vars n mean sd min max range se
team 1 2 NaN NA Inf -Inf -Inf NA
points 2 2 35.0 8.49 29 41 12 6.0
rebounds 3 2 6.0 0.00 6 6 0 0.0
steals 4 2 2.5 0.71 2 3 1 0.5
------------------------------------------------------------ 
group: C
 vars n mean sd min max range se
team 1 3 NaN NA Inf -Inf -Inf NA
points 2 3 20.00 9.54 11 30 19 5.51
rebounds 3 3 9.67 3.06 7 13 6 1.76
steals 4 3 5.67 1.15 5 7 2 0.67

Выходные данные показывают сводную статистику для каждой из трех команд во фрейме данных.

Дополнительные ресурсы

Как рассчитать сводку из пяти чисел в R
Как рассчитать среднее значение по группе в R
Как рассчитать сумму по группе в R
Как рассчитать дисперсию R
Как создать ковариационную матрицу в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.