On Mar 29, 2013, at 10:47 AM, arun wrote: > Hi, > > > final<-data.frame() > for (m1 in 4:10) { > for (n1 in 4:10){ > for (x1 in 0: m1) { > for (y1 in 0: n1) { > > final<- rbind(final,c(m1,n1,x1,y1)) > res}}}} > final1<-within(final,{flag<-ifelse(x1/m1>y1/n1, 1,0)})
That looks likely to be extremely slow. 'rbind.data.frame' is notoriously slow when applied iteratively in loops. Couldn't this just be: dat <- expand.grid(m1 = 4:10, n1 = 4:10, x1 = 0: m1, y1 = 0: n1) final= within(dat, flag=as.numeric( x1/m1>y1/n1) ) -- David. > head(final1) > # m1 n1 x1 y1 flag > #1 4 4 0 0 0 > #2 4 4 0 1 0 > #3 4 4 0 2 0 > #4 4 4 0 3 0 > #5 4 4 0 4 0 > #6 4 4 1 0 1 > > > Also, just by looking at your code, you have "flag" and "flap". > > A.K. > > > > ________________________________ > From: Joanna Zhang <zjoanna2...@gmail.com> > To: arun <smartpink...@yahoo.com> > Sent: Friday, March 29, 2013 10:56 AM > Subject: if clause in data frame > > > Why the if clause code not working here? > > final<-data.frame() > for (m1 in 4:10) { > for (n1 in 4:10){ > for (x1 in 0: m1) { > for (y1 in 0: n1) { > > if (x1/m1>y1/n1) { flag<-1} > else {flap<-0} > > final<-rbind(final, c(m1,n1,flag, x1,y1)) > }} > }} > colnames(final)<-c("m1","n1","flag","x1","y1") > final > David Winsemius Alameda, CA, USA ______________________________________________ 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.