[R] Merging lists on common key (was <no subject>)
Marc Schwartz
MSchwartz at mn.rr.com
Thu Dec 15 04:19:02 CET 2005
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
More information about the R-help
mailing list