[R] writing a categorical var. with condition
Marc Schwartz
marc_schwartz at comcast.net
Fri Nov 2 21:46:36 CET 2007
On Fri, 2007-11-02 at 22:02 +0200, sigalit mangut-leiba wrote:
> Hello,
> I want to create a new variable which includes 4 age categories in this way:
>
> if (age>=12 && age<32) age1==1
>
> if (age>=32 && age<52) age1==2
>
> if (age>=52 && age<72) age1==3
>
> if (age>=72 && age<100) age1==4
>
> but I get the results only for the first observation.
>
> how can I apply this condition to all observations?
>
> Thanks in advance,
>
> Sigalit.
The if() function can only return a single result, so you would have to
create something along the lines of an if...else construct.
Alternatively, you can use cut():
age <- 12:99
> cut(age, breaks = c(12, 32, 52, 72, 100), labels = 1:4, include.lowest = TRUE)
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2
[35] 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4
[69] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
Levels: 1 2 3 4
Note that this returns a factor. If you want an actual integer value,
you would have to coerce the result.
See ?cut for more information.
HTH,
Marc Schwartz
More information about the R-help
mailing list