Подумайте о создании воспроизводимого примера в следующий раз. (см. пример, который я привел в коде, это будет полезно в будущем, когда у вас возникнут вопросы).
Я использовал tidyverse (в частности, пакет dplyr) для решения этой проблемы.
## Load library (this loads lots of packages, specifically we are using dplyr)
library(tidyverse)
## Reproducible example
data <- tibble(id = c(rep(1,8),rep(2,12)),
time = c(rep(14,4),rep(18,2),rep(22,2),rep(8,4),12,rep(15,3),rep(19,4)))
print(data)
# A tibble: 20 x 2
id time
<dbl> <dbl>
1 1 14
2 1 14
3 1 14
4 1 14
5 1 18
6 1 18
7 1 22
8 1 22
9 2 8
10 2 8
11 2 8
12 2 8
13 2 12
14 2 15
15 2 15
16 2 15
17 2 19
18 2 19
19 2 19
20 2 19
## Data with increments for each group
new_data <- data %>%
##Groups your data by the same variable, in this case you want to increment by 0.25 for each id within the time group
group_by(time) %>%
## Increments each id by 0.25
mutate(new_time = ifelse((row_number() == 1), time, (0.25 * (row_number()-1)) + time)) %>%
## Ungroups the data
ungroup()
print(as.data.frame(new_data))
id time new_time
1 1 14 14.00
2 1 14 14.25
3 1 14 14.50
4 1 14 14.75
5 1 18 18.00
6 1 18 18.25
7 1 22 22.00
8 1 22 22.25
9 2 8 8.00
10 2 8 8.25
11 2 8 8.50
12 2 8 8.75
13 2 12 12.00
14 2 15 15.00
15 2 15 15.25
16 2 15 15.50
17 2 19 19.00
18 2 19 19.25
19 2 19 19.50
20 2 19 19.75