[R] minimum of each row in a matrix

Sarah Goslee sarah.goslee at gmail.com
Tue May 8 15:23:35 CEST 2007


Check out the help for apply, particularly the MARGIN argument:

minOfRows=apply(a, 1, function(x) min(x[x!=0]) )
maxOfRows=apply(a, 1, function(x) max(x) )

Sarah

On 5/8/07, Schmitt, Corinna <Corinna.Schmitt at igb.fraunhofer.de> wrote:
> Hallo,
>
> I just followed the discussion of the title: minimum from matrix.
> I have a similar problem.
>
> > a=matrix(c(0,2, 0, 0, 1, 3, 0, 3, 2, 0, 3, 5, 0, 4, 0, 0),ncol=4)
> > a=rbind(a,1:4)
> > a
>      [,1] [,2] [,3] [,4]
> [1,]    0    1    2    0
> [2,]    2    3    0    4
> [3,]    0    0    3    0
> [4,]    0    3    5    0
> [5,]    1    2    3    4
> >
> > minOfColumns=apply(a, 2, function(x) min(x[x!=0]) )
> > minOfColumns
> [1] 1 1 2 4
> > maxOfColumns=apply(a, 2, function(x) max(x) )
> > maxOfColumns
> [1] 2 3 5 4
> >
>
> How looks like the command for the minimum of the rows? I tried several
> possibilities with apply but did not get the wanted result. The result
> should be minOfRows = 0 0 0 0 1
>
> Thanks,
> Corinna
>


-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list