Hi Robert,
thanks for your reply. is there a way to store them in separate vectors?
and when i try it with a different example i got different result. For
example if x = [1 2 8 9]
i want the result to be x1 = [1 2] and x2 = [8 9].
thanks

On Sat, May 21, 2011 at 7:16 PM, Robert Baer <rb...@atsu.edu> wrote:

> Hi everyone,
>> i am trying to group close numbers in a vector.
>> For example i have a vector x = [1 2 4 7 9 10 15].
>> I want the code to pick 1 2 4 (max difference between successive numbers
>> is
>> 2) and assign them to variable a, then pick 7 9 10 and assign them to b
>> and
>> 15 to c. But since i do not know how many groups there will be the code
>> should create a,b,c etc as it goes along. So if x = [1 2 4 7 9 10 15 20]
>> it
>> should create a,b,c and d this time and assign 20 to d (while the others
>> remain the same).
>>
>
> I think the following function should do basically what you want:
> codeit = function(x){
>  action = c(TRUE, diff(x) <= 2)
>  g = paste('x', '1', sep='')
>  j = 1
>  for (i in 2: length(x)){
>   if (action[i-1] != action[i] | action[i] == FALSE) j = j+1
>     g[i] = paste('x', j, sep='')
>  }
>  df = data.frame(x, grp.x=g)
> }
>
>
>
>
> ------------------------------------------
> Robert W. Baer, Ph.D.
> Professor of Physiology
> Kirksville College of Osteopathic Medicine
> A. T. Still University of Health Sciences
> 800 W. Jefferson St.
> Kirksville, MO 63501
> 660-626-2322
> FAX 660-626-2965
>
>
>

        [[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