[R] problems to report indexes when I have two min value

Jean-Christophe BOUËTTÉ jcbouette at gmail.com
Fri Sep 16 18:13:09 CEST 2011


Hi there,
Assuming you would prefer to have only one min per row:

apply(dat,1,which.min)

there is a link to this function in the help page for ?min.
JC

2011/9/16 marlene marchena <marchenamarlene at gmail.com>:
> Hi,
>
> I need to repor the index of a min value of each row in a matrix, but I
> don't know how to do that when I have more than one min value.
>
> Here is my example
>
>> dat <-
> matrix(c(5.4,4.8,5.6,4.8,NA,4.4,4.6,3.4,NA,NA,4,2.4,NA,NA,NA,2),byrow=TRUE,ncol=4)
>
>> dat
>     [,1] [,2] [,3] [,4]
> [1,]  5.4  4.8  5.6  4.8
> [2,]   NA  4.4  4.6  3.4
> [3,]   NA   NA  4.0  2.4
> [4,]   NA   NA   NA  2.0
>> k <- apply(dat, 1, function(x) which(x == min(x, na.rm = TRUE)))
>>    k
> [[1]]
> [1] 2 4
>
> [[2]]
> [1] 4
>
> [[3]]
> [1] 4
>
> [[4]]
> [1] 4
>
> But I need an output like this
>
> k<- 2 or 4, 4, 4, 4
>
> Someone could help me with this issue.
>
> Thanks in advance,
>
> Marlene.
>
>        [[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.
>



More information about the R-help mailing list