是否可以将单独的boxlot摘要合并为一个并创建组合图?

时间:2013-02-28 22:50:57

标签: r statistics boxplot

我正在使用相当大的数据集(每月appx.400万行,包含25个数字属性和4个因子属性)。我想创建一个图表,其中包含每月(过去36个月)每个产品的每个数字属性(4个因子属性之一)的箱线图。

以产品A为例:

                    - 
      _             |          -
     _|_            |         _|_
    |   |           |        |   |
    |   |          _|_       |   |
    |   |         |   |      |---|
    |   |         |---|      |   |
    |---|         |   |      |   |
    |_ _|         |   |      |_ _|
      |           |_ _|        |
      |             |          |
      -             |          -
                    -

 --------------------------------------------------------------
    jan '10      feb '10    mar '10 ................... feb '13

但由于这些是非常大的数据集,我将与我合作,我想要一些建议,开始如何处理。我的想法(但我不确定这是否可行)是

  • a)每个产品每月提取数据
  • b)为该特定月份创建一个箱线图(所以让我们说产品A的jan'10)
  • c)将boxplot摘要数据存储在某处
  • d)重复a-c所有月份直至2013年12月
  • e)将所有存储的boxplot摘要数据合并为一个
  • f)绘制组合箱图g)对所有其他产品重复a-f

所以我的主要问题是:是否可以将单独的boxlot摘要合并为一个并创建上面勾画的组合图?

任何帮助将不胜感激,

谢谢

2 个答案:

答案 0 :(得分:2)

这是一个长期的例子,你可以做一些事情:

读入各个数据集 - 您可能希望覆盖相同的数据,或者在给定您正在使用的大数据的情况下将此步骤包装在函数中。

dset1 <- 1:10
dset2 <- 10:20
dset3 <- 20:30

存储一些箱图信息,请注意plot=FALSE

result1 <- boxplot(dset1,plot=FALSE,names="month1")
result2 <- boxplot(dset2,plot=FALSE,names="month2")
result3 <- boxplot(dset3,plot=FALSE,names="month3")

使用bxp

对数据进行分组和绘图
mylist <- list(result1, result2, result3)
groupbxp <- do.call(mapply, c(cbind, mylist))
bxp(groupbxp)

结果:

enter image description here

答案 1 :(得分:0)

您将无法以绝对精度预测“fivenum”值的值对于组合值的组合。考虑两组的情况,每组有75%的百分位数和每组的观察计数。假设百分位数不相等。您不能只采用百分位数的加权平均值来获得聚合值的第75个百分位数。请参阅?boxplot.stats的帮助页面。但是,我认为你可以通过使用fivenum集合的中值非常接近。这可能是开始考试的地方。

 mo.mtx <- tapply(dat$values, dat$month, function( mo.dat) c( fivenum(mo.dat), length(mo.dat) ) 
 matplot( mo.mtx[, 1:5] , type="l" )