[R] alternative to matching/merge?

jim holtman jholtman at gmail.com
Tue Jun 17 02:23:48 CEST 2008


Is this what you tried:

> x <- data.frame(a=1:10, b=1:10)
> x <- data.frame(a=1:3, b=1:3)
> do.call(rbind, list(x,x,x,x,x))
   a b
1  1 1
2  2 2
3  3 3
4  1 1
5  2 2
6  3 3
7  1 1
8  2 2
9  3 3
10 1 1
11 2 2
12 3 3
13 1 1
14 2 2
15 3 3
>


On Mon, Jun 16, 2008 at 7:36 PM, Lana Schaffer <schaffer at scripps.edu> wrote:
> Jim,
> Is it possible to do a do.call(rbind,d.frame) with a list
> like using lapply(data,func,args)?
> I have not successfully executed this.
> Lana
>
> -----Original Message-----
> From: hadley wickham [mailto:h.wickham at gmail.com]
> Sent: Friday, June 13, 2008 2:54 PM
> To: jim holtman
> Cc: Lana Schaffer; r-help at r-project.org
> Subject: Re: [R] alternative to matching/merge?
>
> On Fri, Jun 13, 2008 at 11:45 AM, jim holtman <jholtman at gmail.com>
> wrote:
>> What is the structure of 'd.frame' and 'segFile'?  Run Rprof so that
>> we can see which of the functions it is spending its time in.  What
>> happens if x$index is not in seqFile$index?  Are the values in the
>> 'index' unique in both structures?  Subsetting a data frame can be
>> expensive when compared to using a matrix.  Could you use a matrix
>> instead of a data frame; are all the columns the same mode?  Again
>> either a subset of data would be helpful or an 'str' on the data
>> objects being used so that we can understand what they are.
>
> A few other ideas to try:
>
>  * try merging do.call("rbind", d.frame) and seqFile, and then spliting
> the results back up
>
>  * try turning giving seqFile rownames (rownames(seqFile) <-
> seqFile$index) and then use character matching:  cbind(x, seqFile[
> as.character(x$index)]
>
>  * if there is a one to one corresponding between index in seqFile and
> all data.frames in d.frame, merge all of the d.frames together, order
> both by index then just cbind
>
> Hadley
>
>
> --
> http://had.co.nz/
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?



More information about the R-help mailing list