我有一个里程表读数,其中包含以下针对不同汽车的示例数据。我打算将里程表的值重置为有效 有效地衡量他行进的距离
样本数据
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
答案 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))