Dear Rui,Thankyou very much for your help. just for my own knowledge what if 
want the values and index, which are less than or equal to 80% of the maximum 
value other than those in the neighbors?? like if maximum is in row number 5 of 
any column then the second maximum can be in any row other than 4 and 6. 
similarly if maximum is in row number 12 than the second maximum can be in any 
row other than 1 and 11...thankyou very much for your help
elisa 

> Date: Fri, 24 May 2013 12:37:37 +0100
> From: ruipbarra...@sapo.pt
> To: eliza_bo...@hotmail.com
> CC: b...@xs4all.nl; r-help@r-project.org
> Subject: Re: [R] Continuous columns of matrix
> 
> Hello,
> 
> Berend is right, it's at least confusing. To get just the index of the 
> maximum value in each column,
> 
> apply(mat, 2, which.max)
> 
> 
> To get that index and the two neighbours (before and after, wraping 
> around) if they are greater than or equal to 80% of the maximum, try
> 
> fun <- function(x){
>       n <- length(x)
>       imx <- which.max(x)
>       sec <- numeric(2)
>       if(imx == 1){
>               if(x[n] >= 0.8*x[imx]) sec[1] <- n
>               if(x[2] >= 0.8*x[imx]) sec[2] <- 2
>       }else if(imx == n){
>               if(x[n - 1] >= 0.8*x[imx]) sec[1] <- n - 1
>               if(x[1] >= 0.8*x[imx]) sec[2] <- 1
>       }else{
>               if(x[imx - 1] >= 0.8*x[imx]) sec[1] <- imx - 1
>               if(x[imx + 1] >= 0.8*x[imx]) sec[2] <- imx + 1
>       }
>       sec <- sec[sec != 0]
>       c(imx, sec)
> }
> 
> apply(mat, 2, fun)
> 
> 
> Note that the result comes with the maximum first and the others follow.
> 
> Hope this helps,
> 
> Rui Barradas
> 
> 
> Em 24-05-2013 11:41, eliza botto escreveu:
> > There you go!!!
> >
> > structure(c(0.706461987893674, 0.998391468394261, 0.72402995269242, 
> > 1.70874688194537, 1.93906363083693, 0.89540353128442, 0.328327645695443, 
> > 0.427434603701202, 0.591932250254601, 0.444627635494183, 1.44407704434405, 
> > 1.79150336746345, 0.94525563730664, 1.1025988539757, 0.944726401770203, 
> > 0.941068515436361, 1.50874009152312, 0.590015480056925, 0.311905493999476, 
> > 0.596771673581893, 1.01502499067153, 0.803273181849135, 1.6704085033648, 
> > 1.57021117646422, 0.492096635764151, 0.433332688044914, 0.521585941816778, 
> > 1.66472272302545, 2.61878329527404, 2.19154489521664, 0.493876245329722, 
> > 0.4915787202584, 0.889477365620806, 0.609135860199222, 0.739201878930367, 
> > 0.854663750519518, 0.948228727226247, 1.38569091844218, 0.910510759802679, 
> > 1.25991218521949, 0.993123416952421, 0.553640392997634, 0.357487763503204, 
> > 0.368328033777003, 0.344255688489322, 0.423679560916755, 1.32093576037521, 
> > 3.13420679229785, 2.06195904001605, 1.41493262330451, 1.35748791897328, 
> > 1.19490680241894, 0.7024887561!
 8332!
> >   2, 0.338258418490199, 0.123398398622741, 0.138548982660226, 
> > 0.16170889185798, 0.414543218677095, 1.84629295875002, 2.24547399004563, 
> > 0.0849732189580101, 0.070591276171845, 0.0926010253161898, 
> > 0.362209761457517, 1.45769283057202, 3.16165004659667, 2.74903557756267, 
> > 1.94633472878995, 1.19319875840883, 0.533232612926756, 0.225531074123974, 
> > 0.122949089115578), .Dim = c(12L, 6L))
> >
> > Thanks once again..
> > Elisa
> >
> >
> >> Subject: Re: [R] Continuous columns of matrix
> >> From: b...@xs4all.nl
> >> Date: Fri, 24 May 2013 12:36:47 +0200
> >> CC: r-help@r-project.org
> >> To: eliza_bo...@hotmail.com
> >>
> >>
> >> On 24-05-2013, at 12:24, eliza botto <eliza_bo...@hotmail.com> wrote:
> >>
> >>> Dear useRs,If i have a matrix, say, 12 rows and 6 columns. The columns 
> >>> are continuous. I  want to find the index of maximum values and the 
> >>> actual maximum values. The maximum values in each column are the highest 
> >>> values and the values greater than or equal to 80% of the maximum value. 
> >>> Moreover, if a column has more than one maximum values than these values 
> >>> should come immediately next to each other.  For example, if you column 1 
> >>> has a highest value in 6th row then the second maximum values cant be in 
> >>> row 5 or 7. And as the columns are continuous therefore, if maximum value 
> >>> is in row 12th, then the second maximum cant be in row 11 and 1.Thankyou 
> >>> very much indeed in advance
> >>
> >>
> >> Incomprehensible.
> >> What is a continuous column?
> >>
> >> Please give an example input matrix and and the result you want.
> >>
> >> Berend
> >>
> >>> Elisa                                     
> >>>   [[alternative HTML version deleted]]
> >>>
> >>
> >> Please post in plain text.
> >>
> >                                     
> >     [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help@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@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.

Reply via email to