我的主要目标:我有一个由许多学生组成的数据框架,他们在一次测试中对45个项目的回答,以及45个项目中每一个项目的正确答案。有些学生来自同一所学校(我们有每个学校的ID )。
我需要的是得到谁回答问题的人的百分比,在每个学校,并为每个项目。
我能够分离向量,并为每个学生纠正测试,然后我就有了一个像图片中的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正确,以此类推。适用于所有学校和所有项目。
我希望这能让你更容易尝试并更好地理解挑战。
https://stackoverflow.com/questions/54809439
复制相似问题