[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