Множественные коробчатые диаграммы в 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 в моем столбце.

Заранее спасибо !!!


person Ashwin    schedule 09.07.2013    source источник
comment
вы можете добавить пример ожидаемого результата?   -  person Abdocia    schedule 09.07.2013
comment
Извините не хватило репутации, чтобы добавить цифру :-) !!! Но, как я уже сказал, мне нужно, чтобы каждая строка была построена как пары коробчатой ​​диаграммы на основе факторов столбца (1 и 2).   -  person Ashwin    schedule 09.07.2013


Ответы (1)


Вот по идее использовал 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)

введите описание изображения здесь

person agstudy    schedule 09.07.2013