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 ______________________________________________ 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.