2017-07-24 3 views
0

Blick auf die folgenden DatenrahmenR Iteratoren/Loops (Ermittlung Impuls/Richtung)

1 1 3 2 1 6 3 1 7 2 1 6 3 1 7 4 1 8 5 1 13 6 0 10 5 1 13 4 1 12 5 1 13 6 1 14 7 NA NA 8 0 16 7 NA NA 6 NA NA

Auf der linken Spalte habe ich eine kleine Probe.

auf der Säule Zentrum i einen Testwert: if the number on the left eventually rises by a value of 2 before dropping by a value of 2, the binary value is "1", if the number declines first by 2 before rising 2, the binary is "0"

Auf der dritte Spalte i die Position will, wo die Kriterien

2 steigt auf 4 ... die Dummy erfüllt wurden, ist „1“ ... die letzte Spalte sagt, dass "4" auf Position 6 war

6 sinkt auf 4 vor Erreichen von 8, so ist der Dummy "0". Die letzte Spalte sagt, dass bestimmte "4" auf Position betrug 10

Edit:

Danke Matt

Antwort

0

Etwas Ähnliches kann für Sie arbeiten.

x <- data.frame(V1 = c(1, 2, 3, 2, 3, 4, 5, 6, 5, 4, 5, 6, 7, 8, 7, 6)) 


for(i in 1:nrow(x)){ 
    for(j in i:nrow(x)){ 
    if(x[j,1] - x[i,1] == 2){ 
     x[i,2] <- 1 
     x[i,3] <- j 
     break() 
    } else if(x[j,1] - x[i,1] == -2){ 
     x[i,2] <- 0 
     x[i,3] <- j 
     break() 
    } else{ 
     x[i,2] <- NA 
     x[i,3] <- NA 
    } 
    } 
} 
Verwandte Themen