如何将变量值重置为0的起点?

时间:2019-02-13 12:05:07

标签: r

我有一个里程表读数,其中包含以下针对不同汽车的示例数据。我打算将里程表的值重置为有效 有效地衡量他行进的距离

样本数据

ID      ODometer

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

预期:

Expected Output

ID  Odometer
1   1
1   2
1   3
1   4
1   5
1   6
2   1
2   2
2   3  

1 个答案:

答案 0 :(得分:2)

按“ ID”分组后,我们可以使用row_number()

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

数据

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))