[R] sorting the data~

Philipp Pagel p.pagel at wzw.tum.de
Thu Jun 5 09:05:25 CEST 2008


On Wed, Jun 04, 2008 at 07:36:04PM -0600, Manli Yan wrote:
>   no,the id is  variable of a table,such as:
>   treatment id  age response
>     low         1   50   20
>     low         1   60   30
>     high        5   50   30
>     high        5   60  40
> 
> .......
> 
> I want to rearranage the table according the id (increasing)

Ah - that's a different story. To sort your data frame by id:

foo <- foo[order(foo$id), ]

> ,since id is not strictly from 1~n,it is in increasing order but
> sometime jump through many number like 1 1 5 5,I like them to be 1 1 2
> 2~

foo$id <- as.integer(factor(foo$id))

seems to do what wou want, except I am not sure if factor is
guaranteed to encode the values in ascending order. If it isn't this is
a bad idea. Alternatively, this should work:

foo$id <- cumsum(as.logical(diff(foo$id))) + 1

I'm sure there is a more elegant way but can't think of one right now.

cu
	Philipp

-- 
Dr. Philipp Pagel
Lehrstuhl für Genomorientierte Bioinformatik
Technische Universität München
Wissenschaftszentrum Weihenstephan
85350 Freising, Germany
http://mips.gsf.de/staff/pagel



More information about the R-help mailing list