Try: das$danger <- with(das, (age > 65) * (bmi > 30))
On Jan 1, 2008 5:03 PM, Gerard Smits <[EMAIL PROTECTED]> wrote: > Hi All, > > I have a small dataset named das (43 cases) in which I am trying to > create a binary outcome (1/0) based on the following code: > > if (das$age>65 && das$bmi>30) {das$danger<-1} else das$danger<-0 > > I am setting a flag called 'danger' to 1 of the subject is over 65 > and has a BMI > 30. > > I find that my statement evaluates the first record in the data.frame > and then carries that assignment for all. I detected this as I played > around with the values and found that the T/F status of the first > record was always carried dowqn. I have gotten this to work with an > elseif construction, but would like to know what is happening here. > > Thanks, > > Gerard > > Using: Windows Vista and R 2.61 > > > Code and output: > > das<- sasxport.get("c:\\personal\\r\\das.xpt") > if (das$age>65 && das$bmi>30) {das$danger<-1} else das$danger<-0 > attach(das) > das > > > The following object(s) are masked from das ( position 3 ) : > > age bmi day id male sex status > > id age sex bmi status day male danger > 1 33001 35 M 27.5 0 365 1 0 > 2 33002 29 M 34.9 1 22 1 0 > 3 33003 41 F 23.6 0 365 0 0 > 4 33004 55 F 27.0 0 365 0 0 > 5 42001 37 M 39.0 0 365 1 0 > 6 42002 53 M 26.6 1 124 1 0 > 7 42003 46 F 45.4 1 287 0 0 > 8 42004 35 F 36.2 0 365 0 0 > 9 42005 38 F 24.6 0 365 0 0 > 10 42006 58 F 28.0 0 365 0 0 > 11 42007 27 M 25.0 0 365 1 0 > 12 42008 65 F 24.6 0 365 0 0 > 13 42009 25 F 28.0 0 365 0 0 > 14 43001 66 M 27.8 0 365 1 0 > 15 43002 57 F 34.0 0 365 0 0 > 16 43003 45 F 38.1 0 365 0 0 > 17 43004 33 F 53.3 1 62 0 0 > 18 43005 56 F 36.5 0 365 0 0 > 19 43006 31 F 22.4 1 1 0 0 > 20 43007 53 F 32.2 1 21 0 0 > 21 55001 51 M 29.2 0 365 1 0 > 22 55002 33 F 18.7 0 365 0 0 > 23 55003 40 F 30.3 0 365 0 0 > 24 55004 67 M 31.9 0 365 1 0 <- Problem case should > =1 for danger > 25 55005 41 F 35.0 0 365 0 0 > 26 55006 44 F 37.3 0 365 0 0 > 27 55007 67 M 28.4 1 1 1 0 > 28 55008 65 F 28.8 0 365 0 0 > 29 55009 76 M 18.8 1 225 1 0 > 30 55010 75 F 21.1 1 39 0 0 > 31 63001 30 F 24.9 0 365 0 0 > 32 63002 36 F 47.2 1 377 0 0 > 33 63003 45 F 32.0 0 365 0 0 > 34 63004 49 F 32.3 0 365 0 0 > 35 63005 41 F 20.2 0 365 0 0 > 36 63006 60 F 28.2 0 365 0 0 > 37 63007 33 F 24.5 0 365 0 0 > 38 63008 36 F 28.4 1 56 0 0 > 39 63009 31 F 22.1 0 365 0 0 > 40 63010 77 M 26.6 1 9 1 0 > 41 63011 41 F 32.0 0 365 0 0 > 42 63012 40 F 38.5 1 92 0 0 > 43 63013 27 M 20.6 0 365 1 0 > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > ______________________________________________ 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.