[R] count value changes in a column

Bill.Venables at csiro.au Bill.Venables at csiro.au
Wed Jun 1 04:22:20 CEST 2011


I thought so to.  If so, here is one way you could do it

fixSeq <- function(state) {
  shift1 <- function(x) c(1, x[-length(x)])
  repeat {
    change <- state %in% c(4,5) & shift1(state) == 3
    if(any(change))
        state[change] <- 3 else break
  }
  state
}

e.g.
> state
 [1] 1 3 3 5 5 3 2 4 2 1 5 3 3 5
> fixSeq(state)
 [1] 1 3 3 3 3 3 2 4 2 1 5 3 3 3
> 

For the data frame:
> set.seed(144)
> dfr <- data.frame(state = sample(rep(1:5,200)))
> 
> dfr <- within(dfr, changed <- fixSeq(state))
> head(dfr, 11)
   state changed
1      5       5
2      2       2
3      1       1
4      5       5
5      2       2
6      1       1
7      1       1
8      4       4
9      3       3
10     5       3  ### <<--- change
11     3       3
>  

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of jim holtman
Sent: Wednesday, 1 June 2011 11:20 AM
To: Justin Haynes
Cc: r-help at r-project.org
Subject: Re: [R] count value changes in a column

Why isn't the sequence:

1 3 3 3 3 3 2 4 2 1 5 3 3 3

according to your rule about 5s following 3s.

On Tue, May 31, 2011 at 6:23 PM, Justin Haynes <jtor14 at gmail.com> wrote:
> is there a way to look for value changes in a column?
>
> set.seed(144)
> df<-data.frame(state=sample(rep(1:5,200),1000))
>
> any of the five states are acceptable.  however if, for example,
> states 4 or 5 follow state 3, i want to overwrite them with 3.
> changes from 1 to any value and 2 to any value are acceptable as are
> changes from any value to 1 or 2.
>
> By way of an example:
>
> the sequence 1 3 3 5 5 3 2 4 2 1 5 3 3 5
>
> should read   1 3 3 3 3 3 2 4 2 1 5 5 5 5
>
>
> Thanks for the help!
>
> Justin
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?

______________________________________________
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