[R] The most common row in a matrix?

Atte Tenkanen attenka at utu.fi
Mon Nov 20 21:00:01 CET 2006


Many workable versions has been proposed. This mcr()-version seems to be fastest though it's not the shortest or at first sight the simplest among all. 

Is there any differences between unique and unique.matrices if the parameter is nxn-matrix?

By the way, what does 'drop=FALSE' means in function-command? It is not mentioned in help("function"). Is it some kind of more global parameter? Sorry all stupid questions, but my target is only to apply R, not to be a master ;-)

Atte

> 
> Here is an idea you can develop as you wish.  You need to be specific
> about how to handly several rows that occur equally commonly, for
> example.
> 
> mcr <- function(x, drop = FALSE) { #'most common row'
>  xx <- do.call("paste", c(data.frame(x), sep = "\r"))
>  tx <- table(xx)
>  mx <- names(tx)[which(tx == max(tx))[1]]
>  x[match(mx, xx), , drop = drop]
> }
> 
> Slightly extend your example:
> 
> > x
>     [,1] [,2] [,3] [,4] [,5]
> [1,]    1    2    3    1    2
> [2,]    2    3    1    2    3
> [3,]    3    1    2    3    1
> [4,]    1    2    3    1    2
> [5,]    1    2    3    1    2
> [6,]    2    3    1    2    3
> [7,]    3    1    2    3    1
> [8,]    1    2    3    1    2
> 
> Now:
> 
> > mcr(x)
>     [,1] [,2] [,3] [,4] [,5]
> [1,]    1    2    3    1    2
> > mcr(x, drop = T)
> [1] 1 2 3 1 2
> 
> ___
> 
> This kind of example suggests that it might be useful to make 'match'
> generic (like 'duplicated' and 'unique'), with methods for data frames
> and matrices.
> 
> Bill Venables.
> 
> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of kone
> Sent: Monday, 20 November 2006 5:31 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] The most common row in a matrix?
> 
> Hi,
> 
> How do you get the most common row from a matrix? If I have a 
> matrix  
> like this
> 
> array(1:3,dim=c(4,5))
> 
>      [,1] [,2] [,3] [,4] [,5]
> [1,]    1    2    3    1    2
> [2,]    2    3    1    2    3
> [3,]    3    1    2    3    1
> [4,]    1    2    3    1    2
> 
> in which rows 1 and 4 are similar, I want to find that vector c 
> (1,2,3,1,2).
> 
> Atte Tenkanen
> University of Turku, Finland
> 
> ______________________________________________
> R-help at stat.math.ethz.ch 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