Один из способов решить эту проблему - использовать для l oop и отслеживать текущее число, которое вы вводите, и значение, которое вы заменяете.
vec <- c(1, 1, 1, 2, 2, 3, 3, 5, 5, 7, 7, 7, 9, 9)
curr <- vec[1]
rep <- vec[1]
for(i in 1:length(vec)) {
if(vec[i] > rep) {
rep <- vec[i]
curr <- curr + 1
}
if(vec[i] > curr) {
vec[i] <- curr
}
}
# Print the results
for(val in vec) {
print(val)
}
Это решение предполагает, что числа уже отсортированы. Если нет, вы можете использовать метод sort .