Hello,

Can you please help me with the following issue: I want to compute returns (ret_eom) based on two conditions, i.e. for each monthly observation (mo_dates) in my sample and for each decile based on the credit rating (decile_cr_monthly).

I computed the returns using the following command:
bysort mo_dates decile_cr_monthly : egen ptf_ret_crat=mean(ret_eom)

Naturally, the variable generated ptf_ret_crat has the same number of observations as the original sample (containing many duplicates).
Is there a way to generate a new variable satisfying these conditions and having only the unique observations?

I was able to identify the number of unique observations using the following code:

by ptf_ret_crat, sort: gen nvals = _n == 1
replace nvals = sum(nvals)
replace nvals = nvals[_N]

So for example, if I have 12 months and 10 deciles, the new variable should have 120 observations (which is also what nvals retrieves).
Is there a way to store a new variable containing only these unique observations, while sorting them based on the date and rating?

Thank you for your help!