我想在R中从两个不同的数据帧创建一个箱线图。在每个数据帧中,行代表样本。虽然列代表疾病。箱线图分布应该从每行的值中进行。数据应该显示每个数据框(控制,实验组)中行分布之间的比较。因此,如果每个数据框中有6行,则应该有12个框。
看起来应该是这样的。 https://i.stack.imgur.com/17OIk.png
两个数据框具有相同的行数,但列数不同,因为实验条件不同。我还希望通过仅一个数据帧的行中位数来重新排序这些图,并且应该为整个框图保留此顺序。
任何想法?我是R的新手,非常感谢任何线索。
答案 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$condition <- "experimental"
df2$condition <- "control"
df3 <- rbind(df1, df2)
library(reshape2)
m.df <- melt(df3, id.var="condition")
library(ggplot2)
ggplot(m.df, aes(x=condition, y=value)) + geom_boxplot(aes(fill=variable))