R中的多变量箱图

时间:2014-12-06 19:58:40

标签: r statistics boxplot

我是R的新手和统计分析整体。我目前正在处理一个数据集,其中包括年龄和记忆以及特定化合物的浓度。我的数据是使用read.csv从csv文件中获取的。

目前,我可以使用

显示一个年龄组和一个蛋白质的方框图
boxplot(data$compound_A[data$Age.Code==3]~q$Memory.Code[q$Age.Code==3])

当我想看两个年龄组时,我遇到了问题。我试过了

boxplot(data$compound_A[data$Age.Code==3]~q$Memory.Code[data$Age.Code==3],
data$compound_A[data$Age.Code==2]~q$Memory.Code[q$Age.Code==2])

以及它的一些排列,例如:

boxplot(data$compound_A[data$Age.Code==3]~q$Memory.Code[data$Age.Code==3],data,
data$compound_A[data$Age.Code==2]~q$Memory.Code[q$Age.Code==2],data)

不幸的是,这些方法都没有奏效。任何帮助将不胜感激!

谢谢!

这里建议使用dput选项

structure(list(ID = c(635L, 637L, 638L, 639L, 641L, 642L, 644L, 
646L, 647L, 649L, 652L, 676L, 677L, 678L, 679L, 682L, 684L, 686L, 
688L, 692L, 693L, 715L, 716L, 717L, 718L, 719L), Age.Code = c(3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L), Memory.Code = c(2L, 2L, 
2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L), Compound_A = c(NA, 0, 93.25, 
42.79, 148.94, 41.98, 38.99, 0, 0, 42.79, 41.98, 0, 27.38, 76.51, 
121.6, 0, 153.69, 68.6, 189.15, NA, 210.73, 0, 27.38, 2.12, 76.51, 
76.51)), .Names = c("ID", "Age.Code", "Memory.Code", "Compound_A"
), class = "data.frame", row.names = c(NA, -26L))

1 个答案:

答案 0 :(得分:1)

这是一个ggplot解决方案。

library(ggplot2)
ggplot(data, aes(x=factor(Memory.Code),y=Compound_A))+
  geom_boxplot(aes(fill=factor(Age.Code)),position=position_dodge(.9))+
  scale_fill_discrete(name="Age.Code")+labs(x="Memory.Code")

这是使用基础R的方式。

boxplot(Compound_A~factor(Age.Code)+factor(Memory.Code),data)