在长熔化柱中绘制成对相关性

时间:2015-02-20 02:19:18

标签: r

我有一个数据框,其中包含3列融合数据(长和薄),我想创建一个比较基因的成对散点图(例如,基因A与基因B,基因A与基因C,基因B) vs C等等)在多达10个基因的格子中。我开始使用geom_point(),但无法找出在美学中传递x和y值的最佳方法,所以我开始查看成对数据的其他选项,如pair,splom,plotmatrix,但我认为数据需要是转换为每个基因作为列的格式和行中的值。

起初看起来很简单,但我是R / ggplot的新手,似乎无法在网上找到合适的解决方案。

ID  Gene    value
830 Gene_A  1.8
831 Gene_A  0.4
832 Gene_A  2.5
833 Gene_A  2.3
834 Gene_B -5.1
835 Gene_B  3.6
836 Gene_B  2.0
837 Gene_B  3.2
837 Gene_C -1.6
838 Gene_C -1.4
839 Gene_C -5.5
840 Gene_C -4.4
841 Gene_D -2.7
842 Gene_D -3.2
843 Gene_D -2.5
844 Gene_D -2.5

1 个答案:

答案 0 :(得分:1)

好的,我能够使用以下代码解决这个问题:

library(reshape2)
library(ggplot)

#first convert data to generate new ID for each gene
dat$ID<-NULL
dat<-within(dat,{Gene<-as.character(Gene)
ID<- ave(Gene,Gene,FUN=seq_along)
})

有关重塑此类数据框的示例,请参阅此链接以获取相关信息 Reshape data.frame with two columns into multiple columns with data (R)

#cast the new dataset with 1 id per gene, convert from long to wide
dat<-dcast(dat, ID~Gene,value.var="value")

#setup new data frame for plotting
dat4plot=dat

#need to remove ID for plotting
dat4plot$ID=NULL 

#Generate plot using pairs function,removed upper panel to see better
pairs(dat4plot,pch=21,bg="red",upper.panel=NULL)

Pairwise Plot

我对此感到满意,但也欢迎提出更有效的建议!!!