来自R中两个数据帧的箱线图

时间:2017-07-17 18:05:30

标签: r dataframe boxplot

我想在R中从两个不同的数据帧创建一个箱线图。在每个数据帧中,行代表样本。虽然列代表疾病。箱线图分布应该从每行的值中进行。数据应该显示每个数据框(控制,实验组)中行分布之间的比较。因此,如果每个数据框中有6行,则应该有12个框。

看起来应该是这样的。 https://i.stack.imgur.com/17OIk.png

两个数据框具有相同的行数,但列数不同,因为实验条件不同。我还希望通过仅一个数据帧的行中位数来重新排序这些图,并且应该为整个框图保留此顺序。

任何想法?我是R的新手,非常感谢任何线索。

1 个答案:

答案 0 :(得分:1)

生成一些样本数据

df1 <- data.frame(disease.a=rnorm(10,2), 
disease.b=rnorm(10,2),
disease.c=rnorm(10,2)) # experimental group

df2 <- data.frame(disease.a=rnorm(10,0),
disease.b=rnorm(10,0),
disease.c=rnorm(10,0)) # control group

向df1和df2添加一列以表示实验条件

df1$condition <- "experimental"
df2$condition <- "control"

将数据框绑定在一起

df3 <- rbind(df1, df2)

重塑数据

library(reshape2)
m.df <- melt(df3, id.var="condition")

根据您的示例

使用ggplot绘制数据
library(ggplot2)
ggplot(m.df, aes(x=condition, y=value)) + geom_boxplot(aes(fill=variable))