2016-08-02 96 views
1

我有一個類似於下面的窗體中的數據。我想從中創建一個4x4的箱型圖。但是,下面的代碼只會生成一個盒子圖。當我做xyplot時,情節很好。我是R新手,所以我確定它是一個愚蠢的錯誤,但任何人都可以幫助/回答爲什麼xyplot和bwplot有不同的行爲,以及我如何獲得4x4的盒圖?R格子boxplot網格

library(lattice) 
require(lattice) 
t1 <- c(LETTERS[1:17]) 
m1 <- matrix(rnorm(12*16,mean=0,sd=1), 12, 16) 
fac <- rep(1:4,3) 
    m1 <- cbind(m1,fac) 
    m1 <- data.frame(m1) 
    colnames(m1) <- t1 
    m1$Q <- as.factor(m1$Q) 

xyplot(A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P ~ Q, 
     data=m1, 
     groups=A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P, 
     scales=list(relation="free"), 
     col="blue", 
     layout=(c(4,4)) 
     ) 
bwplot(A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P ~ Q, 
     data=m1, 
     groups=A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P, 
     col="blue", 
     coef=4, do.out = FALSE, 
     layout=(c(4,4)) 
     ) 

回答

3

添加outer=TRUEbwplot(...)似乎這樣的伎倆:

bwplot(A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P ~ Q, 
     data=m1, 
     groups=A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P, 
     col="blue", 
     coef=4, 
     do.out = FALSE, 
     outer = TRUE, 
     layout=(c(4,4)) 
     ) 

enter image description here

從幫助文件:

這個功能的變化是,當「外」的說法是 設置爲「真」。在這種情況下,每塊板上的圖不會疊加在 中,而是分成不同的面板(如果添加了新的條件變量,則爲 )。

0

首先嚐試重新格式化數據:

library(reshape) 
m1d<-melt(m1,id=17) 

bwplot(value ~ Q | variable, data=m1d) 

enter image description here

+0

這很好,因爲如果我向數據集添加更多列,我不必將它們添加到組中並定義方程!非常好。這個測試數據集都是相同的規模,但我的真實數據跨越了幾個尺度,所以我還需要添加「scales = list(relation =」free「)」,並將佈局設置爲4x4。非常感謝你的幫助。 – Nathan