1
我有一个大的数据集,看起来像类似于此,如何从R中的多列分组频率绘制箱形图?
StudentID SectorID ClassID
1 A Team_1 Class_1
2 A Team_1 Class_1
3 B Team_1 Class_1
4 B Team_2 Class_1
5 B Team_2 Class_1
6 A Team_2 Class_1
7 A Team_3 Class_1
8 C Team_3 Class_2
9 C Team_3 Class_2
10 C Team_3 Class_2
11 C Team_3 Class_2
12 C Team_1 Class_2
13 D Team_1 Class_2
14 D Team_1 Class_2
这可以通过产生,
stg <- data.frame(StudentID = c(rep("A", 2), rep("B", 3), rep("A", 2), rep("C", 5), rep("D", 2) ),
SectorID = c(rep("Team_1", 3), rep("Team_2", 3), rep("Team_3", 5), rep("Team_1", 3)),
ClassID = c(rep("Class_1", 7), rep("Class_2", 7))
)
然后,设法找到每个扇区,然后类别分组StudentID的频率。
stg.a <- aggregate(stg$StudentID, by = list(SectorID = stg$SectorID, ClassID = stg$ClassID), count)
但是,这里计数返回某种复杂的列表。如果你检查stg.a,你会奇怪或显然误导输出。所以,我它转换为一个矩阵,
stg.a.f <- as.data.frame(as.matrix(stg.a))
和看起来像这样,
SectorID ClassID x.x x.freq
1 Team_1 Class_1 1, 2 2, 1
2 Team_2 Class_1 1, 2 1, 2
3 Team_3 Class_1 1 1
4 Team_1 Class_2 3, 4 1, 2
5 Team_3 Class_2 3 4
第一行读取, 在TEAM_1,在Class_1学生编号1(ID:A),出现了2次, 学生号码2(ID:B),出现1次。我想要看到频率(如果可能的话,根据Student_ID(xx)以颜色分开),然后按照某些因素进行分组(例如,队,类)
1)感谢您的时间百万@sfyn。你的帮助当然可以解决我试图解决的基本问题。但是,在这个解决方案中,我无法应用(还)方面来显示不同的分组。 <<仍然我正在尝试 2)在我之前解决问题的方法中:它包含数据中的StudentID信息,可能使我们有可能根据StudentID为每个点着色。我想,这很有趣。 “我像前面那样打墙。 –