Как я могу ранжировать наблюдения в группах в Stata?

У меня есть некоторые данные в Stata, которые выглядят как первые два столбца:

group_id   var_to_rank  desired_rank
____________________________________

1           10          1
1           20          2
1           30          3
1           40          4
2           10          1
2           20          2
2           20          2
2           30          3

Я хотел бы создать ранг каждого наблюдения в пределах группы (group_id) в соответствии с одной переменной (var_to_rank). Обычно для этой цели я использовал:

gen id = _n

Однако некоторые из моих наблюдений (group_id = 2 в моем небольшом примере) имеют те же значения переменной ранжирования, и этот подход не работает.

Я также пытался использовать:

egen rank

Команда с различными параметрами, но не может заставить мои переменные ранга сделать так, чтобы они выглядели как требуемый

Не могли бы вы указать мне решение этой проблемы?