Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Store a new variable with unique observations and missing otherwise

    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!

    Last edited by Astrid Koss; 15 Mar 2019, 15:41.

  • #2
    There is no simple way to create the variable in the way you describe. But once you have created it with the -egen- command you showed in #1, it is very simple to simply make the extra ones go missing:
    Code:
    bysort mo_dates decile_cr_monthly : replace ptf_ret_crat = . if _n > 1

    Comment


    • #3
      Perfect, thank you!

      Comment


      • #4
        See also the tag() function of egen and the broader discussion in https://www.stata-journal.com/sjpdf....iclenum=dm0042

        Comment

        Working...
        X