1

I have a odometer reading with following sample data for different cars. I intend to reset value of odometer to effectively measure the distance he traveled in an effective manner

Sample data

ID      ODometer

1   2132
1   2133
1   2134
1   2135
1   2136
1   2137
2   1123
2   1124
2   1125

Expected:

Expected Output

ID  Odometer
1   1
1   2
1   3
1   4
1   5
1   6
2   1
2   2
2   3  
Coolsun
  • 189
  • 9

1 Answers1

2

We can use row_number() after grouping by 'ID'

library(dplyr)
df1 %>%
   group_by(ID) %>%
   mutate(Odometer = row_number())
# A tibble: 9 x 3
# Groups:   ID [2]
#     ID ODometer Odometer
#  <int>    <int>    <int>
#1     1     2132        1
#2     1     2133        2
#3     1     2134        3
#4     1     2135        4
#5     1     2136        5
#6     1     2137        6
#7     2     1123        1
#8     2     1124        2
#9     2     1125        3

data

df1 <- structure(list(ID = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L), 
  ODometer = c(2132L, 
 2133L, 2134L, 2135L, 2136L, 2137L, 1123L, 1124L, 1125L)), 
 class = "data.frame", row.names = c(NA, -9L))
akrun
  • 874,273
  • 37
  • 540
  • 662