[R] difference between the meaning of MARGIN in sweep() and apply()
    Charles C. Berry 
    cberry at tajo.ucsd.edu
       
    Wed Dec 16 19:04:59 CET 2009
    
    
  
On Wed, 16 Dec 2009, Levi Waldron wrote:
> For example, subtracting 1:2 from the rows of a two-column matrix:
>
>> t(apply(matrix(1:6,ncol=2),MARGIN=1,function(y) y - 1:2))
>     [,1] [,2]
> [1,]    0    2
> [2,]    1    3
> [3,]    2    4
>> sweep(matrix(1:6,ncol=2),MARGIN=2,1:2,FUN="-")
>     [,1] [,2]
> [1,]    0    2
> [2,]    1    3
> [3,]    2    4
>
> Is there a logic to this difference, or is it just a quirk of the history of
> these functions?
Well
 	sweep(mat,MARGIN, apply(mat,MARGIN, applyfun), sweepfun)
does it for me.
> mat <- matrix(1:6,ncol=2)
> sweep( mat, 2, apply(mat, 2, mean),'-')
      [,1] [,2]
[1,]   -1   -1
[2,]    0    0
[3,]    1    1
>
Chuck
>
> I found one discussion on this topic, but without what I thought was a very
> conclusive end:
>
> http://finzi.psych.upenn.edu/Rhelp08/2009-March/191930.html
>
>
> -- 
> Levi Waldron
> post-doctoral fellow
> Jurisica Lab, Ontario Cancer Institute
> Division of Signaling Biology
> TMDT 9-304D
> 101 College Street
> Toronto, Ontario M5G 1L7
> (416)581-7453
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901
    
    
More information about the R-help
mailing list