数据框子集的框图中显示不需要的级别

时间:2016-03-16 19:44:45

标签: r subset boxplot

规格:R 3.2.4,Windows 7企业版SP1(32位)

我试图在数据框的子集上做一个箱形图,按特定级别分组。但是,我显然做错了,因为它绘制了原始帧中的所有级别,而不是子集。

我们有一个实时"实时"与约500家客户机构进行沟通,我们发现一些客户的响应时间很慢。我尝试使用R以不同方式可视化数据以查找模式。

我的数据框是一个特别忙碌的早晨所有机构的消息响应时间的1小时快照。此快照是从数据库查询生成的,并保存到文件系统上的.csv文件中:

rt=read.csv("\\path\\to\\csv\\file",header=TRUE)

数据框的结构是消息序列#,网络ID,机构ID,日期,消息类和消息的已用时间。网络ID是指特定的通信接口(我们有大约28-30个活动接口)。

我通过挑选属于特定网络的机构创建了该快照的子集:

rt.network=subset(rt,rt$Network==41)

此时,rt.network应仅包含4个机构的观察结果:

levels(factor(rt.network$Institution))
[1] "INST1" "INST2" "INST3" "INST4"

到目前为止一切顺利。现在我想看到每个机构的经过时间的方框图,所以我做了以下几点:

boxplot(Elapsed~Institution,data=rt.network,outline=FALSE)

期望只为子集框架中的那些机构提供结果;然而,R正在为所有~500个机构绘制结果,其中除了4个之外的所有机构都是空的而且这4个机构都是无用的(没有简单的方法来分享图像,对不起;想象一下X轴的方框图有500个条目,4个一到两个像素的宽盒子)。

问题 - 为什么是R生成未包含在子集数据框架内的机构的图?我在boxplot或子集命令中做错了什么?

毋庸置疑,我很困惑;我不明白为什么那些空洞的水平出现在情节中。

如果有必要,我可以从数据库中过滤出我想要的结果并重新加载;我只是认为加载所有数据一次很好,并在R中进行过滤/子集化。

0 个答案:

没有答案