Итак, вот данные:
Year State Grade Yes
2000 AZ A 1
2000 AZ A 0
2000 AZ A 1
2000 AZ B 1
2000 AZ B 1
2000 CA A 1
2000 CA A 0
2000 CA B 0
2000 NY A 1
2000 NY A 1
2001 NY B 1
То, что я пытаюсь сделать, - это создать таблицу, которая показывает сумму 1 в столбце Да в виде дроби каждой группы.В итоговой таблице будет показано значение для каждой группы на основе года, состояния и класса.Это будет выглядеть следующим образом:
Year Grade AZ CA NY
2000 A 0.667 0.5 1
2000 B 1 0 1
2001 A 0 0 0
2001 B 0 0 1
Данные содержат больше значений, включая несколько значений для года, класса и состояния, поэтому таблица будет намного больше, но по существу она будет возвращать пропорцию для каждой группы на основе этихтри переменные.
Мой код выглядит так:
library(tidyverse)
data %>%
group_by(Year, State, Grade) %>%
summarise(x = Yes / count(Yes)) %>%
spread(State, x)