[R] cut and factor
Oleg Bartunov
oleg at sai.msu.su
Mon Mar 29 22:06:39 CEST 2004
Eric,
thanks for quick reply. at first look I thought it is what I need,
but, unfortunately, it doesn't applied to original data - it
creates new data with loosing original indexes ! I want to keep indexes
of original data, but replace original data with $mids of corresponding
$breaks.
So, if I have z = 1:10, t=hist(z,plot=F)
> z
[1] 1 2 3 4 5 6 7 8 9 10
> t$breaks
[1] 0 2 4 6 8 10
> t$mids
[1] 1 3 5 7 9
I want z=c(1,1,3,3,5,5,7,7,9,9)
Oleg
On Mon, 29 Mar 2004, Erin Hodgess wrote:
> Hello Oleg!
>
> Do you mean something like this, please?
> > z <- rnorm(15)
> > z
> [1] -0.36888946 0.34271755 -0.47761843 -0.58402557 0.05393014 0.69234710
> 2.04861420 1.41823938 -0.57638598 1.51090023
> [11] -0.71616401 0.19227347 -0.19348506 -0.63082326 -0.64346621
> > z1 <- hist(z,plot=F)
> > z1$breaks
> [1] -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5
> > table(cut(z,z1$breaks))
>
> (-1,-0.5] (-0.5,0] (0,0.5] (0.5,1] (1,1.5] (1.5,2] (2,2.5]
> 5 3 3 1 1 1 1
>
> Hope this helps!
> Sincerely,
> Erin Hodgess
> Associate Professor
> Department of Computer and Mathematical Sciences
> University of Houston - Downtown
> mailto: hodgess at gator.uhd.edu
>
>
>
> From: Oleg Bartunov <oleg at sai.msu.su>
>
>
> I have numeric vector z and I want to factorize it using z$breaks
> which I got from histograms breaks. Is there an elegant way to do this ?
> I, probably, could write a loop and check if z hits into some interval
> and replace z with value of z$mids, but I suspect there is more
> R-ish way.
>
> Regards,
> Oleg
> _____________________________________________________________
> Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> Sternberg Astronomical Institute, Moscow University (Russia)
> Internet: oleg at sai.msu.su, http://www.sai.msu.su/~megera/
> phone: +007(095)939-16-83, +007(095)939-23-83
>
Regards,
Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg at sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83
More information about the R-help
mailing list