[R] ifelse to speed up loop?
Jeff
fuertejn at mymail.vcu.edu
Fri Jan 25 01:08:24 CET 2013
Thank you for the tips. I should mention that the V1 is numeric in this case but I am trying to automate the overall procedure so it may not be numeric always. Would that matter with these functions?
Sent from my iPhone
On Jan 24, 2013, at 6:34 PM, arun <smartpink111 at yahoo.com> wrote:
> Hi,
> You could do this:
> test<-read.table(text="
> 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
> ",sep="",header=T)
>
> test$Group<-cumsum(abs(c(0,diff(test[,1]))))+1
> test
> # V1 Group
> #1 1 1
> #2 1 1
> #3 1 1
> #4 2 2
> #5 2 2
> #6 2 2
> #7 1 3
> # 1 3
> #9 1 3
> #10 2 4
> #11 2 4
> #12 2 4
> A.K.
>
>
>
> ----- Original Message -----
> From: Jeffrey Fuerte <fuertejn at vcu.edu>
> To: r-help at 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 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