[R] Replacing value with "1"

Richard M. Heiberger rmh at temple.edu
Fri Sep 23 04:55:40 CEST 2016


tmpf <- function(x) {
  n <- length(x)
  indices <- which(match(x,1) == 1)
  x[indices+1] <- 1
  x[1:n]  ## needed for the case when the last item in a row has value 1
}

tmp <- matrix(c(0,0,1,0,0,
                NA,0,1,1,0,
                0,1,0,0,NA,
                1,0,1,0,1), ## last item in row has value 1
              byrow=TRUE, 4, 5)

tmp

t(apply(tmp, 1, tmpf))

On Thu, Sep 22, 2016 at 10:27 PM, Saba Sehrish via R-help
<r-help at r-project.org> wrote:
> Hi
>
> I have a matrix that contains 1565 rows and 132 columns. All the observations are either "0" or "1". Now I want to keep all the observations same but just one change, i.e. whenever there is "1", the very next value in the same row should become "1". Please see below as a sample:
>
>>df
>
>      0    0    1    0    0
>     NA    0    1    1    0
>      0    1    0    0    NA
>
> What I want is:
>
>
>     0    0    1    1    0
>    NA    0    1    1    1
>     0    1    1    0    NA
>
>
>
> I shall be thankful for the reply.
>
>
> Saba
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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