[R] Generating variable from 2 others in dataframe
Bert Gunter
gunter.berton at gene.com
Mon Mar 1 23:16:52 CET 2010
You have to nest the ifelse's:
test$hhtype <- with(test, ifelse(eif==1,1,ifelse(year<2000,2,3)))
Bert Gunter
Genentech Nonclinical Biostatistics
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of o.mannion at auckland.ac.nz
Sent: Monday, March 01, 2010 2:03 PM
To: 'r-help at r-project.org'
Subject: [R] Generating variable from 2 others in dataframe
Suppose I have the following dataframe called test:
test<-data.frame(year=rep(1990:2003,5),id=gl(5,length(1990:2003)),eif=as.vec
tor(sapply(1:5,function(z){a<-rep(0,length(1990:2003));a[sample(1:length(199
0:2003),sample(1:2,1))]<-1;a})))
year id eif
1990 1 0
1991 1 0
1992 1 0
2000 1 1
1994 1 0
1995 1 0
2001 1 0
1997 1 1
....
I want to create a new variable in this dataframe called "hhtype" according
to the logic:
If eif==1, hhtype = 1
Else if year < 2000, hhtype = 2
Else hhtype = 3
The result would be
year id eif hhtype
1990 1 0 2
1991 1 0 2
1992 1 0 2
2000 1 1 1
1994 1 0 2
1995 1 0 2
2001 1 0 3
1997 1 1 1
I think I can do this with some combination of apply and ifelse, but so far
have not succeeded in putting it all together. Any help would be very much
appreciated!
Thankyou,
Oliver
______________________________________________
R-help at 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.
More information about the R-help
mailing list