Вы можете использовать следующий базовый синтаксис для вычисления корреляции между двумя переменными по группам в R:
library(dplyr)
df %>%
group_by(group_var) %>%
summarize(cor=cor(var1, var2))
Этот конкретный синтаксис вычисляеткорреляцию между var1 и var2 , сгруппированными по group_var .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: вычислить корреляцию по группе в R
Предположим, у нас есть следующий фрейм данных, который содержит информацию о баскетболистах в разных командах:
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
points=c(18, 22, 19, 14, 14, 11, 20, 28),
assists=c(2, 7, 9, 3, 12, 10, 14, 21))
#view data frame
df
team points assists
1 A 18 2
2 A 22 7
3 A 19 9
4 A 14 3
5 B 14 12
6 B 11 10
7 B 20 14
8 B 28 21
Мы можем использовать следующий синтаксис из пакета dplyr для расчета корреляции между очками и передачами , сгруппированными по командам :
library(dplyr)
df %>%
group_by(team) %>%
summarize(cor=cor(points, assists))
# A tibble: 2 x 2
team cor
1 A 0.603
2 B 0.982
Из вывода мы видим:
- Коэффициент корреляции между очками и передачами для команды А равен 0,603 .
- Коэффициент корреляции между очками и передачами для команды Б равен 0,982 .
Поскольку оба коэффициента корреляции положительны, это говорит нам о том, что связь между очками и передачами для обеих команд положительна.
По теме: Что считается «сильной» корреляцией?
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в R:
Как подсчитать уникальные значения по группе в R
Как рассчитать сумму по группе в R
Как рассчитать среднее значение по группе в R
Как рассчитать сводную статистику по группам в R