I have a dataframe as below:
RecordID <- c("a","b","c","d","e","f","g")
row.number <- c(1,2,10,11,12,45,46)
df <- data.frame(RecordID, row.number)
df$frame.change =1
I want the value in frame.change to increase by 1 from the previous row if there is an increase in row.number of more than 1 from the previous row. I am trying the following code but it doesn't work:
for( i in 2:nrow(df)){
df$frame.change[i] <- if( (df$frame.change[i] - df$frame.change[i-1]) <1 ){df$frame.change[i-1] }else{ df$frame.change[i-1] +1 }
cat("-")
}
It doesn't need to be done within a for loop and I presume lapply will be the solution but I can't seem to get this to work.
Help appreciated