# [R] How to index the occasions in a vector repeatedly under condition 1? if not, it will give a new index.

Lijun Zhao ||jun@zh@o @end|ng |rom @de|@|de@edu@@u
Thu Feb 20 04:20:48 CET 2020

```Dear William,
Thank you so much.

I am quiet new in R. I would like to do this based on another repeated variables.

For example:
a<-c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2)
d<-c(NA, 0, 0, 0, 8, 0, 577, 69, 0, NA, 0, 0, 0, 8, 0, 577, 69, 0)
the outcome I want is :
y<-c(1, 1, 1, 1, 1, 1, 2, 3, 3, 1, 1, 1 ,1, 1 ,1, 2, 3, 3)

Therefore, I would like to create y based on the variable a. once variable a has changed, the index will start from 1 again. I wrote a for loop, but it did not give me what I want. Could you please help me again?

Lijun

From: William Dunlap <wdunlap using tibco.com>
Sent: Thursday, 20 February 2020 1:53 AM
To: Lijun Zhao <lijun.zhao using adelaide.edu.au>
Cc: r-help using r-project.org
Subject: Re: [R] How to index the occasions in a vector repeatedly under condition 1? if not, it will give a new index.

Use cumsum(logicalVector) to increment a counter at the TRUE positions in logicalVector. .  E.g.,

> d <- c(NA, 0, 0, 0, 8, 0, 577, 69, 0)
> is_true <- function(x) !is.na<http://is.na>(x) & x
> 1 + cumsum( is_true(d >= 15) )
[1] 1 1 1 1 1 1 2 3 3

Some packages have the equivalent of that is_true function, which maps FALSE and NA to FALSE and TRUE to TRUE.  I don't think core R contains such a function.

Bill Dunlap
TIBCO Software
wdunlap tibco.com<http://tibco.com>

On Wed, Feb 19, 2020 at 7:08 AM Lijun Zhao <lijun.zhao using adelaide.edu.au<mailto:lijun.zhao using adelaide.edu.au>> wrote:
Dear all,
Could you please help me how to get the output as I described in the following example?

x<-c(543,  543,  543,  543,  551 , 551 ,1128 ,1197, 1197)
diff<-x-lag(x)
diff
[1]  NA   0   0   0   8   0 577  69   0

How to index the occasions in x repeatedly if the diff<15? if diff>=15, it will give a new index.
I want the output be like y.

y<-c(1,1,1,1,1,1,2,3,3)

Thank you so much,

Lijun Zhao (PhD Candidate)
Nutrition and Metabolism
Level 7 SAHMRI
North Terrace
Ph    : +61 8 8128 4898

[[alternative HTML version deleted]]

______________________________________________
R-help using r-project.org<mailto:R-help using r-project.org> mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help