Yes. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com
> -----Original Message----- > From: arun [mailto:smartpink...@yahoo.com] > Sent: Thursday, January 24, 2013 3:53 PM > To: William Dunlap > Cc: R help > Subject: Re: [R] ifelse to speed up loop? > > Hi, > > I guess you meant: > c(TRUE, cumsum( v[-length(v)] != v[-1] )) > [1] 1 0 0 1 1 1 2 2 2 3 3 3 > this: > cumsum(c(TRUE, v[-length(v)] != v[-1] )) > # [1] 1 1 1 2 2 2 3 3 3 4 4 4 > A.K. > > > > > ----- Original Message ----- > From: William Dunlap <wdun...@tibco.com> > To: arun <smartpink...@yahoo.com>; Jeffrey Fuerte <fuert...@vcu.edu> > Cc: R help <r-help@r-project.org> > Sent: Thursday, January 24, 2013 6:48 PM > Subject: RE: [R] ifelse to speed up loop? > > I like > v <- test[,1] > c(TRUE, cumsum( v[-length(v)] != v[-1] )) > (R's arithmetic on logicals treats TRUE as 1 and FALSE as 0.) > > Bill Dunlap > Spotfire, TIBCO Software > wdunlap tibco.com > > > > -----Original Message----- > > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > > Behalf > > Of arun > > Sent: Thursday, January 24, 2013 3:37 PM > > To: Jeffrey Fuerte > > Cc: R help > > Subject: Re: [R] ifelse to speed up loop? > > > > HI, > > > > This might be better. > > test$group<-cumsum(abs(c(1,diff(test[,1])))) > > A.K. > > > > > > > > > > ----- Original Message ----- > > From: Jeffrey Fuerte <fuert...@vcu.edu> > > To: r-help@r-project.org > > Cc: > > Sent: Thursday, January 24, 2013 4:20 PM > > Subject: [R] ifelse to speed up loop? > > > > Hello, > > > > I'm not sure how to explain what I'm looking for but essentially I have a > > test dataset that looks like this: > > > > test: > > V1 > > 1 1 > > 2 1 > > 3 1 > > 4 2 > > 5 2 > > 6 2 > > 7 1 > > 8 1 > > 9 1 > > 10 2 > > 11 2 > > 12 2 > > > > And what I want to be able to do is create another column that captures a > > "grouping" variable that looks like this: > > > > test > > V1 group > > 1 1 1 > > 2 1 1 > > 3 1 1 > > 4 2 2 > > 5 2 2 > > 6 2 2 > > 7 1 3 > > 8 1 3 > > 9 1 3 > > 10 2 4 > > 11 2 4 > > 12 2 4 > > > > So, it's keeping track of the changes in V1, but even though V1 could be > > the same in different instances, the group is treating it as a new group. > > I have written a loop that does what I want, but this takes too long to > > run, so I was hoping for either a faster approach or an ifelse statement. > > Any ideas? > > > > By the loop I was using looks like this: > > > > groupings <- 1 > > test$group[1] <- groupings > > for (i in 2:length(test$V1)) > > { > > if (test$V1[i]==test$V1[i-1]) > > { > > test$group[i] <- groupings > > } else { > > groupings <- groupings+1 > > test$group[i] <- groupings > > } > > } > > > > Thanks for the help. > > > > [[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. ______________________________________________ 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.