如何从R中的多列分组频率绘制箱线图?

如何从R中的多列分组频率绘制箱线图?,r,frequency,boxplot,R,Frequency,Boxplot,我有一个大数据集,看起来像这样 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 Cl

我有一个大数据集,看起来像这样

   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) )            
)
第一行写着, 在一队中,一班的一号学生(ID:A)出现了两次, 学生编号2(ID:B),出现1次


现在,我想将其显示为曲线图,主要是箱线图,比如Y轴上,我想看到频率(如果可能的话,通过颜色与学生ID(x.x)分开),然后根据一些因素(例如团队、班级)进行分组)

我看到试图找到复杂的频率,但没有期望的结果。我建议通过查找组合项并记录它们的频率来创建一个简单的data.frame。这可以使用
功能完成,如下所示:

stg.a <- as.data.frame(table(stg$StudentID, stg$SectorID, stg$ClassID))
names(stg.a)<-c(colnames(stg), 'Freq')

stg.a我认为寻找频率的尝试是复杂的,没有期望的结果。我建议通过查找组合项并记录它们的频率来创建一个简单的data.frame。这可以使用
功能完成,如下所示:

stg.a <- as.data.frame(table(stg$StudentID, stg$SectorID, stg$ClassID))
names(stg.a)<-c(colnames(stg), 'Freq')
stg.a 1)非常感谢@sfyn抽出您的时间。你的帮助确实解决了我试图解决的基本问题。然而,在这个解决方案中,我无法应用(尚未)方面来显示不同的分组。1) 非常感谢@sfyn抽出您的时间。你的帮助确实解决了我试图解决的基本问题。然而,在这个解决方案中,我无法应用(尚未)方面来显示不同的分组。
  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
stg.a <- as.data.frame(table(stg$StudentID, stg$SectorID, stg$ClassID))
names(stg.a)<-c(colnames(stg), 'Freq')
stg.a<-stg.a[which(stg.a$Freq>0),]