Dear all,
I am still fairly new to R and try to analyze large tables of data generated
from genomic experiment. Currently, I am trying to plot pair of experiments
coming from different file, trying to look at the behavior of individual
feature in pair of experiment.
My problem is that I have independent list from different source and I would
like to plot the pair of value using a common key. As in this simplified
version:
table1 = list(CGID=c("CG_1","CG_3","CG_2",
"CG_4", "CG_5"),
diff=c(3,5,6,4,3))
table2 = list(CGID=c("CG_2","CG_3","CG_4",
"CG_1", "CG_5"),
diff=c(4,6,3,9,10))
How can link the two table trough the CGIDC column and plot the data from
the 2 tables.
Many tx
Marco Blanchette, Ph.D.
mblanche at berkeley.edu
Donald C. Rio's lab
Department of Molecular and Cell Biology
16 Barker Hall
University of California
Berkeley, CA 94720-3204
Tel: (510) 642-1084
Cell: (510) 847-0996
Fax: (510) 642-6062
On Wed, 2005-12-14 at 18:14 -0800, Marco Blanchette wrote:> Dear all, > > I am still fairly new to R and try to analyze large tables of data generated > from genomic experiment. Currently, I am trying to plot pair of experiments > coming from different file, trying to look at the behavior of individual > feature in pair of experiment. > > My problem is that I have independent list from different source and I would > like to plot the pair of value using a common key. As in this simplified > version: > > table1 = list(CGID=c("CG_1","CG_3","CG_2", "CG_4", "CG_5"), > diff=c(3,5,6,4,3)) > > table2 = list(CGID=c("CG_2","CG_3","CG_4", "CG_1", "CG_5"), > diff=c(4,6,3,9,10)) > > How can link the two table trough the CGIDC column and plot the data from > the 2 tables. > > Many tx > > Marco Blanchette, Ph.D.Marco, Please use an informative subject when posting. It makes it easier for folks, especially when reviewing the e-mail list archives. There is a function called merge() which will perform SQL-like joins. merge() will coerce the two lists to data frames, so you can do the following:> merge(table1, table2, by = "CGID")CGID diff.x diff.y 1 CG_1 3 9 2 CG_2 6 4 3 CG_3 5 6 4 CG_4 4 3 5 CG_5 3 10 The result is a join of the two lists, using CGID (quoted) as the primary key. The two 'diff' elements are uniquely named based upon their source objects (x and y arguments in merge()) as a suffix. The appended suffix can be changed if required. See ?merge for more information. HTH, Marc Schwartz
try with merge() :
table1 = data.frame( CGID=c("CG_1","CG_3","CG_2",
"CG_4", "CG_5"),
diff=c(3,5,6,4,3))
table2 = data.frame( CGID=c("CG_2","CG_3","CG_4",
"CG_1", "CG_5"),
diff=c(4,6,3,9,10))
newtable <- merge(table1, table2, by="CGID")
matplot(merge(table1, table2, by="CGID")[,2:3])
or reshape() it :
newtable2 <- reshape(newtable,
idvar="CGID",
varying=list(names(newtable)[2:3]),
v.names="diff",
direction="long")
plot(diff ~ CGID, newtable2) # if a good number of points
stripplot(diff ~ CGID, newtable2) # if only two per CGID level
Marco Blanchette a ??crit :
>Dear all,
>
>I am still fairly new to R and try to analyze large tables of data generated
>from genomic experiment. Currently, I am trying to plot pair of experiments
>coming from different file, trying to look at the behavior of individual
>feature in pair of experiment.
>
>My problem is that I have independent list from different source and I would
>like to plot the pair of value using a common key. As in this simplified
>version:
>
>table1 = list(CGID=c("CG_1","CG_3","CG_2",
"CG_4", "CG_5"),
>diff=c(3,5,6,4,3))
>
>table2 = list(CGID=c("CG_2","CG_3","CG_4",
"CG_1", "CG_5"),
>diff=c(4,6,3,9,10))
>
>How can link the two table trough the CGIDC column and plot the data from
>the 2 tables.
>
>Many tx
>
>Marco Blanchette, Ph.D.
>
>mblanche at berkeley.edu
>
>Donald C. Rio's lab
>Department of Molecular and Cell Biology
>16 Barker Hall
>University of California
>Berkeley, CA 94720-3204
>
>Tel: (510) 642-1084
>Cell: (510) 847-0996
>Fax: (510) 642-6062
>
>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
>
>
>
On 12/14/05 9:14 PM, "Marco Blanchette" <mblanche at berkeley.edu> wrote:> Dear all, > > I am still fairly new to R and try to analyze large tables of data generated > from genomic experiment. Currently, I am trying to plot pair of experiments > coming from different file, trying to look at the behavior of individual > feature in pair of experiment. > > My problem is that I have independent list from different source and I would > like to plot the pair of value using a common key. As in this simplified > version: > > table1 = list(CGID=c("CG_1","CG_3","CG_2", "CG_4", "CG_5"), > diff=c(3,5,6,4,3)) > > table2 = list(CGID=c("CG_2","CG_3","CG_4", "CG_1", "CG_5"), > diff=c(4,6,3,9,10)) > > How can link the two table trough the CGIDC column and plot the data from > the 2 tables.table1 <- data.frame( CGID=c("CG_1","CG_3","CG_2", "CG_4", "CG_5"), diff=c(3,5,6,4,3)) table2 <- data.frame( CGID=c("CG_2","CG_3","CG_4", "CG_1", "CG_5"), diff=c(4,6,3,9,10)) table.merged <- merge(table1,table2,by.x=1,by.y=1) In other words, use a data.frame here and then use merge. Does that do it? Sean