vendredi 1 janvier 2021

For and If in R data programming

I want to evaluate the distance between non-zero data. So if i have 50 data, and only the first and last data is non-zero, thus i want the result to be 49.

For example, my data is:

1. 0
2. 0
3. 5
4. 6
5. 0
6. 1
7. 0

Based on my data above, i want to get 4 variables:

v0 = 3 (because the distance between 0th to 3rd data is 3 jumps)
v1 = 1 (because the distance between 3rd to 4th data is 1 jump)
v2 = 2 (because the distance between 4rd to 6th data is 2 jump)
v3 = 1 (because the distance between 6rd to 7th data is 1 jump)

This is my code:

data=c(0,0,5,6,0,1,0)

t=1
for (i in data) {
  if (i == 0) {
    t[i]=t+1
  }
  else {
    t[i]=1
  }
}

t

The result is:

[1]  1 NA NA NA  1  1

Could you help me in figuring out this problem? I also hope that the code is using some kind of loop, so that it can be applied to any other data.

Aucun commentaire:

Enregistrer un commentaire