我正在使用相当大的数据集(每月appx.400万行,包含25个数字属性和4个因子属性)。我想创建一个图表,其中包含每月(过去36个月)每个产品的每个数字属性(4个因子属性之一)的箱线图。
以产品A为例:
-
_ | -
_|_ | _|_
| | | | |
| | _|_ | |
| | | | |---|
| | |---| | |
|---| | | | |
|_ _| | | |_ _|
| |_ _| |
| | |
- | -
-
--------------------------------------------------------------
jan '10 feb '10 mar '10 ................... feb '13
但由于这些是非常大的数据集,我将与我合作,我想要一些建议,开始如何处理。我的想法(但我不确定这是否可行)是
所以我的主要问题是:是否可以将单独的boxlot摘要合并为一个并创建上面勾画的组合图?
任何帮助将不胜感激,
谢谢
答案 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)
结果:
答案 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" )