Моя главная цель: у меня есть набор данных о многих учениках, их ответы на 45 вопросов в тесте и правильный ответ также для каждого из 45 предметов.Некоторые ученики из одной школы (у нас есть идентификационный номер для каждой школы).
Мне нужно, чтобы процент людей, которые ответили на вопрос правильно, в каждой школе и для каждого предмета.
Я смог разделить векторы и скорректировать тест для каждого учащегося, затем у меня есть фрейм данных с 0 и 1, как на картинке (каждая строка - студент).
Тогда я смог получить то, что хочу для вопроса 1, с помощью:
escolas <- group_by(acertos, School_ID)
percentual <- summarize(escolas, count = n(), P1 = (sum(Q1)/count)*100)
Я мог набрать 45 из этих строк, изменив ссылку на вопрос, но я почти уверен, что есть другой способ сделать это, но яне смог понять это.
Воспроизводимый пример, 20 учеников, 4 школы и 5 предметов:
Student_ID = c(1:20)
School_ID = c(rep(1,5),rep(2,5), rep(3,5), rep(4,5))
Q1 = 1*(runif(20) < 0.5)
Q2 = 1*(runif(20) < 0.5)
Q3 = 1*(runif(20) < 0.5)
Q4 = 1*(runif(20) < 0.5)
Q5 = 1*(runif(20) < 0.5)
data <- tibble(Student_ID, School_ID, Q1, Q2, Q3, Q4, Q5)
data
Student_ID School_ID Q1 Q2 Q3 Q4 Q5
1 1 0 1 1 0 1
2 1 0 0 1 1 0
3 1 0 1 0 0 0
4 1 0 0 0 0 1
5 1 0 1 1 1 1
6 2 0 0 1 0 1
7 2 0 0 1 1 1
8 2 1 1 1 0 0
9 2 0 0 1 0 0
10 2 1 1 1 1 1
Я хочу что-то вроде этого
School_ID Q1 Q2 Q3 Q4 Q5
1 70% 50% 30% 20% 40%
2 60% 40% 20% 10% 30%
Значение:
Учитывая, что все ученики 1-й школы (и только они), 70% правильно поняли Q1.
С учетом всех учеников 2-й школы (и только они) 30% получилиQ5 правильно и так далее.Для всех школ и всех предметов.
Надеюсь, это поможет вам лучше понять задачу.