[R] Apply and its friends

Crispin Miller CMiller at PICR.man.ac.uk
Mon Oct 6 14:17:56 CEST 2003


Smart! 

Thanks
Crispin


> -----Original Message-----
> From: Berwin Turlach [mailto:berwin at maths.uwa.edu.au]
> Sent: 06 October 2003 13:11
> To: Crispin Miller
> Subject: Re: [R] Apply and its friends
> 
> 
> >>>>> "CM" == Crispin Miller <CMiller at picr.man.ac.uk> writes:
> 
>     CM> Hi,
>     CM> Forgive a very basic question...
>     CM> I need to take two lists-of-lists, and apply a function to
>     CM> each pair of elements in the lists  to return a single
>     CM> list... 
>     CM> For example
> 
>     CM> l1 <- list(1:5,6:10,2:15)
>     CM> l2 <- list(1:8,4:12,1:19,4:20)
> 
>     CM> I could easily do an lapply across each of them, but is there
>     CM> a function that does a sort-of pairwise-apply across both
>     CM> together?
> Not sure how you can do this in your case since one list has 3
> components and the other 4. :)
> 
> But something like this should work:
> 
>   n <- min( length(l1), length(l2) ) 
>   res <- sapply(1:n, function(x) sum(l1[[x]]) - sum(l2[[x]]) )
> 
> The first line calculates the minimum length of the two list.  The
> second one calls sapply with a function.  The first argument is
> essentially a vector with the components that we would like to use.
> In this case I take the difference of the sum as an example.
> 
> If you don't like to make use of global variables, you can pass on the
> list on which you want to operate explicitly to the function that you
> call in sapply:
> 
>   res <- sapply(1:n, function(x, d1, d2) sum(d1[[x]]) - 
> sum(d2[[x]]), d1=l1, d2=l2)
> 
> Hope this helps.
> 
> Cheers,
> 
>         Berwin Turlach
> 
> ========================== Full address ============================
> Berwin A Turlach                      Tel.: +61 (8) 9380 3338 
> (secr)   
> School of Mathematics and Statistics        +61 (8) 9380 3383 
> (self)      
> The University of Western Australia   FAX : +61 (8) 9380 1028
> 35 Stirling Highway                   
> Crawley WA 6009                e-mail: berwin at maths.uwa.edu.au
> Australia                        http://www.maths.uwa.edu.au/~berwin
> 
>
 
--------------------------------------------------------

 
This email is confidential and intended solely for the use o...{{dropped}}




More information about the R-help mailing list