I have a large dataset with rows that include a unique identifier 'id' and a unique time variable called 'timeto'. There are variable numbers of duplicate id's but all in the dataset are duplicated at one point or another. I would like to create a flag indicating when two rows with the same id have 'timeto' values that are <= 2. If there are more than one, I'd like to count up. Examples below:

starting data:

id timeto
1 3
2 7
2 8
2 0
2 14
2 15
3 4
3 6

ending data:
id timeto flag
1 3 0
2 7 1
2 8 1
2 0 0
2 14 2
2 15 2
3 4 1
3 6 1

Eventually, for those 'pairs' of rows with the same ID and timeto within 2, I'd be planning to pivot wide so there is a single row for each ID. Any help would be appreciated!