2013-07-09 40 views
1

我在试图弄清楚如何在R中同时按列和行对数据框/矩阵进行分组时,如何制作包含多个框图的单个图。R中的多个框图,同时按列和行分组矩阵

我有一个R数据框10行500列。列被分成2组(因子-1和2),现在我想要一个单一的数字,其中包含我的数据框中的每一行的两个箱形图,并受到列组的影响。

Ex。

M1 N2 O1 P2 Q1 R2  # [The 1's and 2's refer to my two column groups] 
A 10 11 12 13 14 15 
B 15 14 13 12 11 10 
C 20 21 22 23 24 25 
D 25 24 23 22 21 20 

因此,对于上面的例子中我想有一个与“4箱图对”对每一行,使得每个箱线图对将表示对应于我的列的1和2的因子值的单个数字。

在此先感谢!

+0

可以添加您的预期输出的例子吗? – Abdocia

+0

抱歉没有足够的“声望”来添加一个数字:-) !!!但正如我所说,我需要根据列因子(1和2)将每一行绘制为成对的箱形图, – Ashwin

回答

6

这里的想法使用reshape2。由于您的列数多于行数,因此在转置上工作很自然。

library(ggplot2) 
library(reshape2) 
dt <- read.table(text=' 
M1 N2 O1 P2 Q1 R2  
A 10 11 12 13 14 15 
B 15 14 13 12 11 10 
C 20 21 22 23 24 25 
D 25 24 23 22 21 20',header=TRUE) 
dt.m <- melt(t(dt)) 
dt.m$Var1 <- gsub('[A-Z]','',dt.m$Var1) 

这2个选项绘制:

library(ggplot2) 
library(gridExtra) 
p1 <- ggplot(dt.m) + 
    geom_boxplot(aes(x=Var2,y=value,fill=Var1)) 

p2 <- ggplot(dt.m) + 
    geom_boxplot(aes(x=Var2,y=value,fill=Var2))+ 
    facet_grid(~Var1) 

grid.arrange(p1,p2) 

enter image description here