request: most repeated sequnce
---------- Forwarded message ---------- From: jim holtman <jholtman at gmail.com> Date: Sun, Sep 7, 2008 at 11:42 AM Subject: Re: [R] request: most repeated sequnce To: Muhammad Azam <mazam72 at yahoo.com> This should do it for you:
x=c(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,3,3,3,4,4,4,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,
+ 0,0,0,0,0,0,1,2,2,2,2,2,0,3,3,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
x=array(x,dim=c(3,6,7))
apply(x,3,function(.mat){
+
+ rows <- table(apply(.mat,1,function(z){
+ # remove the zeros
+ z <- z[z != 0]
+
+ paste(z,collapse=' ')
+ }))
+ # remove empty strings
+ rows <- rows[names(rows) != ""]
+
+ if (!is.null(rows)){
+ return(names(rows)[which.max(rows)])
+ } else return(NULL)
+ })
[[1]]
[1] "1"
[[2]]
[1] "1 2 3"
[[3]]
[1] "1 2 3 4"
[[4]]
[1] "1 2 3 4"
[[5]]
[1] "2 2 3 4"
[[6]]
character(0)
[[7]]
[1] "1"
On Sun, Sep 7, 2008 at 8:08 AM, Muhammad Azam <mazam72 at yahoo.com> wrote:
Dear Jim Holtman
Thanks a lot for your help. The problem is still there. Please consider this
set of values
x=c(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,3,3,3,4,4,4,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,
0,0,0,0,0,0,1,2,2,2,2,2,0,3,3,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
x=array(x,dim=c(3,6,7))
apply(x,3,function(.mat){
rows <- table(apply(.mat,1,function(z){
# remove the zeros
z <- z[z != 0]
if (length(z) == 0) return(NULL)
paste(z,collapse=' ')
}))
names(rows[which.max(rows)])
})
output is:
Error in as.vector(x, mode) : invalid argument 'mode'
Note: the obtained rows consist of all zeros should not take part in most
repeated sequence process.
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: Sunday, September 7, 2008 12:36:18 AM
Subject: Re: [R] request: most repeated sequnce
This may come closer since it removes the zeros before comparison:
x=c(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,3,3,3,4,4,4,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,
+ 0,0,0,0,0,0,1,2,2,2,2,2,0,3,3,0,4,4,0,0,0,0,0,0)
x=array(x,dim=c(3,6,5))
apply(x,3,function(.mat){
+ rows <- table(apply(.mat,1,function(z){
+ # remove the zeros
+ z <- z[z != 0]
+ if (length(z) == 0) return(NULL)
+ paste(z,collapse=' ')
+ }))
+ names(rows[which.max(rows)])
+ })
[1] "1" "1 2 3" "1 2 3 4" "1 2 3 4" "2 2 3 4"
On Sat, Sep 6, 2008 at 12:48 PM, Muhammad Azam <mazam72 at yahoo.com> wrote:
Dear R community Initially i thought my problem has been solved but one thing which i found e.g. if 1. All the elements of a sector are zero e.g , , 7 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 0 0 0 0 0 0 0 0 0 0 [2,] 0 0 0 0 0 0 0 0 0 0 [3,] 0 0 0 0 0 0 0 0 0 0 [4,] 0 0 0 0 0 0 0 0 0 0 [5,] 0 0 0 0 0 0 0 0 0 0 2. Majority of the rows consist of zeros e.g. , , 5 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 4 4 0 0 0 0 0 0 0 0 [2,] 4 4 0 0 0 0 0 0 0 0 [3,] 0 0 0 0 0 0 0 0 0 0 [4,] 0 0 0 0 0 0 0 0 0 0 [5,] 0 0 0 0 0 0 0 0 0 0 Actually zeros are not my values. I get values and fill the remaining parts with zeros like "x=array(0,dim=c(3,6,5))". Now according to first strategy "0 0 0 0 0 0 0 0 0 0" are most repeated sequence of rows in both of above cases. But i don't want to consider cases where all elements are zeros and interested to get "4 4 0 0 0 0 0 0 0 0" or just " 4 4 " in case 2. 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 <r-help at r-project.org>; R-help request <r-help-request at r-project.org> Sent: Saturday, September 6, 2008 2:39:19 PM Subject: Re: [R] request: most repeated sequnce Here is a start. You can delete the zeros:
x=c(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,3,3,3,4,4,4,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,
+ 0,0,0,0,0,0,1,2,2,2,2,2,0,3,3,0,4,4,0,0,0,0,0,0)
x=array(x,dim=c(3,6,5))
apply(x,3,function(.mat){
+ rows <- table(apply(.mat,1,function(z){
+ paste(z,collapse=' ')
+ }))
+ names(rows[which.max(rows)])
+ })
[1] "1 0 0 0 0 0" "1 2 3 0 0 0" "1 2 3 4 0 0" "1 2 3 4 0 0" "2 2 3 4 0 0"
On Sat, Sep 6, 2008 at 4:54 AM, Muhammad Azam <mazam72 at yahoo.com> wrote:
Dear R community Hope every one be in best of his/her health. I have a situation in which there are s-sectors. Each sector is further divided into r-rows and c-columns. All it makes an array having dimension (r,c,s). e.g. x=c(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,3,3,3,4,4,4,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,3,4,4,4, 0,0,0,0,0,0,1,2,2,2,2,2,0,3,3,0,4,4,0,0,0,0,0,0) x=array(x,dim=c(3,6,5))
x
, , 1
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0 0 0 0 0
[2,] 1 0 0 0 0 0
[3,] 1 0 0 0 0 0
, , 2
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 0 0 0
[2,] 1 2 3 0 0 0
[3,] 1 2 0 0 0 0
, , 3
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 4 0 0
[2,] 1 2 3 4 0 0
[3,] 1 3 4 0 0 0
, , 4
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 4 0 0
[2,] 1 2 3 4 0 0
[3,] 1 2 3 4 0 0
, , 5
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 0 0 0 0
[2,] 2 2 3 4 0 0
[3,] 2 2 3 4 0 0
I want to get the most repeated sequence (row-wise) of values in each
sector. e.g. in sector 1 i.e. , , 1
the most repeated sequence is 1 (ignoring zeros). In , , 2 the most
repeated sequence is 1 2 3. Similarly in last sector i.e.
, , 5 such sequence is 2 2 3 4. Any body can help to solve this
problem. Thanks
best regards
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.
-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve?
-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve?
Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve?