[R] request: most repeated component of a list

Dimitris Rizopoulos d.rizopoulos at erasmusmc.nl
Thu Sep 11 10:52:16 CEST 2008


try the following:

ff <- function (x) {
   do.call("paste", c(as.data.frame(x), sep = "\r", collapse = ""))
}
pats <- sapply(a, ff)
ind <- which.max(table(pats))
a[[ind]]


I hope it helps.

Best,
Dimitris


> Thanks for the effort but still we are far from the desired result. May be
> this example will help you to understand the situation. Example
> a1=c(1:12);   a1=array(a1,dim=c(3,4));   a2=c(1:12);
> a2=array(a2,dim=c(3,4));  a3=c(1:16)
> a3=array(a3,dim=c(4,4));
> a=list(a1,a2,a3);
> a
> [[1]]
>      [,1] [,2] [,3] [,4]
> [1,]    1    4    7   10
> [2,]    2    5    8   11
> [3,]    3    6    9   12
>
> [[2]]
>      [,1] [,2] [,3] [,4]
> [1,]    1    4    7   10
> [2,]    2    5    8   11
> [3,]    3    6    9   12
>
> [[3]]
>      [,1] [,2] [,3] [,4]
> [1,]    1    5    9   13
> [2,]    2    6   10   14
> [3,]    3    7   11   15
> [4,]    4    8   12   16
>
> Here [[1]] and [[2]] are same out of three (internal values wise). The
> whole array [[1]] or [[2]] is in majority. So i want to get the whole
> array or component of list which is in majority. The result should be like
> this
>      [,1] [,2] [,3] [,4]
> [1,]    1    4    7   10
> [2,]    2    5    8   11
> [3,]    3    6    9   12
>
> Hope it is much more clear as before.
>
> best regards
> Muhammad Azam
>
>
> ----- Original Message ----
> From: Adam D. I. Kramer <adik-rhelp at ilovebacon.org>
> To: Muhammad Azam <mazam72 at yahoo.com>
> Cc: R Help <r-help at r-project.org>
> Sent: Thursday, September 11, 2008 9:53:40 AM
> Subject: Re: [R] request: most repeated component of a list
>
> That is indeed different from what I thought the first time.
>
> x <- sapply(1:length(l), function(x) {
>    sum(sapply(l, function(y) {
>      if ( nrow(l[[x]]) != nrow(y) | ncol(l[[x]]) != ncol(y) ) FALSE
>      else sum(y != l[[x]]) == 0
>    }))
> } )
>
> names(x) <- names(l)
>
> Then, x has the same names as l, and x[i] is the number of matches that
> l[[i]] has...so you want the index or indices of max(x).
>
> --Adam
>
> On Thu, 11 Sep 2008, Muhammad Azam wrote:
>
>> May be i could not explain properly. Actually there are components of
>> list i.e. [[1]] to [[500]]. Each component containing r-rows (may be
>> different for each [[ k ]] and c-columns same for all). I have to
>> compare all the [[ k ]] components of that list and found the one
>> appearing maximum no of times. e.g. from three components [[1]] to
>> [[3]] given below. The most repeated is
>>
>>         [,1] [,2] [,3] [,4] [,5]
>> [1,]    4    0    0    0    0
>> [2,]    4    3    4    0    0
>> [3,]    4    3    4    0    0
>> [4,]    4    3    0    0    0Please help to find it. Thanks and
>>
>> best regards
>> Muhammad Azam
>>
>>
>> ----- Original Message ----
>> From: jim holtman <jholtman at gmail.com>
>> To: Muhammad Azam <mazam72 at yahoo.com>
>> Cc: R-help request <r-help-request at r-project.org>; R Help
>> <r-help at r-project.org>
>> Sent: Wednesday, September 10, 2008 5:59:28 PM
>> Subject: Re: [R] request: most repeated component of a list
>>
>> If want you want is the summary from all of them, then 'rbind' the
>> data together into one matrix and analyze it:
>>
>> totalMat <- do.call(rbind, listOfMatrices)
>>
>> On Wed, Sep 10, 2008 at 11:49 AM, Muhammad Azam <mazam72 at yahoo.com>
>> wrote:
>>> Dear R community
>>>
>> I have stored the results of arrays in a list consist of J-components
>> (say 200 components). Each component containing same no of columns but
>> may be different no of rows. e.g
>>> [[1]]
>>>     [,1] [,2] [,3] [,4] [,5]
>>> [1,]    4    0    0    0    0
>>> [2,]    4    3    4    0    0
>>> [3,]    4    3    4    0    0
>>> [4,]    4    3    0    0    0
>>>
>>> [[2]]
>>>     [,1] [,2] [,3] [,4] [,5]
>>> [1,]    4    0    0    0    0
>>> [2,]    4    3    4    0    0
>>> [3,]    4    3    4    0    0
>>> [4,]    4    3    0    0    0
>>>
>>> [[3]]
>>>     [,1] [,2] [,3] [,4] [,5]
>>> [1,]    4    0    0    0    0
>>> [2,]    4    4    1    0    0
>>> [3,]    4    4    1    0    0
>>> [4,]    4    4    0    0    0
>>> [5,]    4    4    0    0    0
>>>
>>>
>> For 200 components i want to make a frequency table. How can i make a
>> frequency table of these components or the most repeated component out
>> of all? Any help in this regard will be appreciated.
>>>
>>>
>>> Muhammad Azam
>>>
>>>
>>>
>>>        [[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.
>>>
>>
>>
>>
>> --
>> Jim Holtman
>> Cincinnati, OH
>> +1 513 646 9390
>>
>> What is the problem that you are trying to solve?
>>
>>
>>
>>     [[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.
>>
>
>
>
>
> 	[[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.
>


-- 
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014



More information about the R-help mailing list