Announcement

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

  • New Variable carrying all used Company Names to create ID variable

    Hello,

    I find it difficult to put my problem into a simple heading so the name of the thread might be misleading. Anyhow, I hope I can put my problem into understandable words below.

    I have a dta file with various variables including Company (string), NewName (string), and Year (int). Each Company is observed multiple times over the time - sometimes a company has not been observed for a year but observed the year thereafter again and so on. Whenever a company changes its name (that unfortunately happens quite often), I have an observation for the respective year with the old company name in Company and the new company name in NewName. Further, I have an observation of the same year with the new company name in Company.

    Here is an example of my data (I manually added it a bit to include all relevant examples):


    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input int Year str56 Company str42 NewName
    2014 "One Holding"    "1Time Holdings LTD"
    2014 "1Time Holdings LTD"    ""
    2016 "1Time Holdings LTD"                                       ""                              
    2018 "1Time Holdings LTD"                                          ""                    
    2019 "1Time Holdings LTD"                                       "Example Holding"        
    2019 "Example Holding"                                       ""                              
    2018 "4SIGHT HOLDINGS LTD"                                      ""                              
    2019 "4SIGHT HOLDINGS LTD"                                      ""                              
    2019 "ABSA GROUP LTD"                                           ""                              
    2017 "ACCELERATE PROPERTY FUND LTD"                             ""                              
    2018 "ACCELERATE PROPERTY FUND LTD"                             ""                              
    2019 "ACCELERATE PROPERTY FUND LTD"                             ""                              
    2017 "ACCENTUATE LTD"                                           ""                              
    2018 "ACCENTUATE LTD"                                           ""                              
    2019 "ACCENTUATE LTD"                                           ""                              
    2017 "ACSION LTD"                                               ""                              
    2018 "ACSION LTD"                                               ""                              
    2019 "ACSION LTD"                                               ""                              
    2017 "ACUCAP PROPERTIES LTD"                                    ""                              
    2017 "ADAPTIT HOLDINGS LTD"                                     ""                              
    2018 "ADAPTIT HOLDINGS LTD"                                     ""                              
    2019 "ADAPTIT HOLDINGS LTD"                                     ""                              
    end
    Now, I want a new variable ("AllNames") that includes all Company Names that have been used for this company (I want to use the variable to create an ID variable later for example). For example for One Holding which became 1Time Holdings LTD in 2014 which became Example Holding in 2019 the variable should be "One Holding, 1Time Holdings LTD, Example Holding".

    I was able to partly generate such a variable for observation containing the old and the new name by:

    Code:
    gen AllNames=""
    replace AllNames =Company + ", " + NewName if NewName!=""
    Unfortunately this is only the correct AllNames variable if the company only changed its name once. I then tried to fill the AllNames variable for the previous observations by using a panel data structure, namely:

    Code:
    gen NewYear=-Year
    xtset Company NewYear
    sort Company NewYear
    by Company: gen lag_AllNames=AllNames[_n-1]
    replace AllNames=lag_AllNames if AllNames==""
    Unfortunately this code only works if there are no gaps in the observations of a company. I might be able to solve the problem by taking lag 2 or lag 3 instead of lag 1 in the code but this approach does not work at all for the observation that carry the new company name in the variable Company. I guess, there is a much more straightword approach to the problem but I cannot think of one at the moment.

    I hope you can help me. If you need further information on the problem, please let me know.

    Best regards
    Nina
    Last edited by Nina Kupzig; 08 Jul 2020, 06:46.

  • #2
    I would suggest a different approach if your goal is to obtain a unique company identifier. Install group_id from SSC by Robert Picard.

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input int Year str56 Company str42 NewName
    2014 "One Holding"                  "1Time Holdings LTD"
    2014 "1Time Holdings LTD"           ""                  
    2016 "1Time Holdings LTD"           ""                  
    2018 "1Time Holdings LTD"           ""                  
    2019 "1Time Holdings LTD"           "Example Holding"   
    2019 "Example Holding"              ""                  
    2018 "4SIGHT HOLDINGS LTD"          ""                  
    2019 "4SIGHT HOLDINGS LTD"          ""                  
    2019 "ABSA GROUP LTD"               ""                  
    2017 "ACCELERATE PROPERTY FUND LTD" ""                  
    2018 "ACCELERATE PROPERTY FUND LTD" ""                  
    2019 "ACCELERATE PROPERTY FUND LTD" ""                  
    2017 "ACCENTUATE LTD"               ""                  
    2018 "ACCENTUATE LTD"               ""                  
    2019 "ACCENTUATE LTD"               ""                  
    2017 "ACSION LTD"                   ""                  
    2018 "ACSION LTD"                   ""                  
    2019 "ACSION LTD"                   ""                  
    2017 "ACUCAP PROPERTIES LTD"        ""                  
    2017 "ADAPTIT HOLDINGS LTD"         ""                  
    2018 "ADAPTIT HOLDINGS LTD"         ""                  
    2019 "ADAPTIT HOLDINGS LTD"         ""                  
    end
    
    gen obsid=_n
    expand 2
    bys obsid: gen companypair= cond(_n==1, Company, NewName)
    drop if missing(companypair)
    gen newid= Company
    replace newid= string(`=-_n') if missing(newid)
    *ssc install group_id
    group_id newid, matchby(companypair)
    bysort obsid: keep if _n == 1
    Res.:

    Code:
    . l Year Company NewName newid, sepby(newid)
    
         +-----------------------------------------------------------------------------------------+
         | Year                        Company              NewName                          newid |
         |-----------------------------------------------------------------------------------------|
      1. | 2014                    One Holding   1Time Holdings LTD             1Time Holdings LTD |
      2. | 2014             1Time Holdings LTD                                  1Time Holdings LTD |
      3. | 2016             1Time Holdings LTD                                  1Time Holdings LTD |
      4. | 2018             1Time Holdings LTD                                  1Time Holdings LTD |
      5. | 2019             1Time Holdings LTD      Example Holding             1Time Holdings LTD |
      6. | 2019                Example Holding                                  1Time Holdings LTD |
         |-----------------------------------------------------------------------------------------|
      7. | 2018            4SIGHT HOLDINGS LTD                                 4SIGHT HOLDINGS LTD |
      8. | 2019            4SIGHT HOLDINGS LTD                                 4SIGHT HOLDINGS LTD |
         |-----------------------------------------------------------------------------------------|
      9. | 2019                 ABSA GROUP LTD                                      ABSA GROUP LTD |
         |-----------------------------------------------------------------------------------------|
     10. | 2017   ACCELERATE PROPERTY FUND LTD                        ACCELERATE PROPERTY FUND LTD |
     11. | 2018   ACCELERATE PROPERTY FUND LTD                        ACCELERATE PROPERTY FUND LTD |
     12. | 2019   ACCELERATE PROPERTY FUND LTD                        ACCELERATE PROPERTY FUND LTD |
         |-----------------------------------------------------------------------------------------|
     13. | 2017                 ACCENTUATE LTD                                      ACCENTUATE LTD |
     14. | 2018                 ACCENTUATE LTD                                      ACCENTUATE LTD |
     15. | 2019                 ACCENTUATE LTD                                      ACCENTUATE LTD |
         |-----------------------------------------------------------------------------------------|
     16. | 2017                     ACSION LTD                                          ACSION LTD |
     17. | 2018                     ACSION LTD                                          ACSION LTD |
     18. | 2019                     ACSION LTD                                          ACSION LTD |
         |-----------------------------------------------------------------------------------------|
     19. | 2017          ACUCAP PROPERTIES LTD                               ACUCAP PROPERTIES LTD |
         |-----------------------------------------------------------------------------------------|
     20. | 2017           ADAPTIT HOLDINGS LTD                                ADAPTIT HOLDINGS LTD |
     21. | 2018           ADAPTIT HOLDINGS LTD                                ADAPTIT HOLDINGS LTD |
     22. | 2019           ADAPTIT HOLDINGS LTD                                ADAPTIT HOLDINGS LTD |
         +-----------------------------------------------------------------------------------------+

    Comment


    • #3
      Hello Andrew,

      thank you so much for your help! Your code works perfectly for my problem! I probably still have to generate a list of all matching company names (for some other reason than the id) but with the newid variable this doesn't seem to be too complicated.

      Best regards
      Nina

      Comment


      • #4
        Several ways to do this. Following the code in #2

        Code:
        preserve
        contract Company newid, nomiss
        bys newid: replace _freq=_n
        gen wanted= Company if _freq==1
        qui sum _freq
        forval i=2/ `r(max)'{
            bys newid: replace wanted= wanted[`i'-1]+ "; " + Company[`i'] if _freq==`i'
        }
        bys newid (_freq): replace wanted= wanted[_N]
        drop _freq
        tempfile wanted
        save `wanted'
        restore
        merge m:1 Company newid using `wanted', nogenerate
        Res.:

        Code:
        . sort newid
        
        . l Year Company newid wanted, sepby(newid)
        
             +-----------------------------------------------------------------------------------------------------------------------+
             | Year                        Company                          newid                                             wanted |
             |-----------------------------------------------------------------------------------------------------------------------|
          1. | 2019                Example Holding             1Time Holdings LTD   Example Holding; One Holding; 1Time Holdings LTD |
          2. | 2016             1Time Holdings LTD             1Time Holdings LTD   Example Holding; One Holding; 1Time Holdings LTD |
          3. | 2014                    One Holding             1Time Holdings LTD   Example Holding; One Holding; 1Time Holdings LTD |
          4. | 2018             1Time Holdings LTD             1Time Holdings LTD   Example Holding; One Holding; 1Time Holdings LTD |
          5. | 2014             1Time Holdings LTD             1Time Holdings LTD   Example Holding; One Holding; 1Time Holdings LTD |
          6. | 2019             1Time Holdings LTD             1Time Holdings LTD   Example Holding; One Holding; 1Time Holdings LTD |
             |-----------------------------------------------------------------------------------------------------------------------|
          7. | 2018            4SIGHT HOLDINGS LTD            4SIGHT HOLDINGS LTD                                4SIGHT HOLDINGS LTD |
          8. | 2019            4SIGHT HOLDINGS LTD            4SIGHT HOLDINGS LTD                                4SIGHT HOLDINGS LTD |
             |-----------------------------------------------------------------------------------------------------------------------|
          9. | 2019                 ABSA GROUP LTD                 ABSA GROUP LTD                                     ABSA GROUP LTD |
             |-----------------------------------------------------------------------------------------------------------------------|
         10. | 2019   ACCELERATE PROPERTY FUND LTD   ACCELERATE PROPERTY FUND LTD                       ACCELERATE PROPERTY FUND LTD |
         11. | 2018   ACCELERATE PROPERTY FUND LTD   ACCELERATE PROPERTY FUND LTD                       ACCELERATE PROPERTY FUND LTD |
         12. | 2017   ACCELERATE PROPERTY FUND LTD   ACCELERATE PROPERTY FUND LTD                       ACCELERATE PROPERTY FUND LTD |
             |-----------------------------------------------------------------------------------------------------------------------|
         13. | 2019                 ACCENTUATE LTD                 ACCENTUATE LTD                                     ACCENTUATE LTD |
         14. | 2017                 ACCENTUATE LTD                 ACCENTUATE LTD                                     ACCENTUATE LTD |
         15. | 2018                 ACCENTUATE LTD                 ACCENTUATE LTD                                     ACCENTUATE LTD |
             |-----------------------------------------------------------------------------------------------------------------------|
         16. | 2017                     ACSION LTD                     ACSION LTD                                         ACSION LTD |
         17. | 2018                     ACSION LTD                     ACSION LTD                                         ACSION LTD |
         18. | 2019                     ACSION LTD                     ACSION LTD                                         ACSION LTD |
             |-----------------------------------------------------------------------------------------------------------------------|
         19. | 2017          ACUCAP PROPERTIES LTD          ACUCAP PROPERTIES LTD                              ACUCAP PROPERTIES LTD |
             |-----------------------------------------------------------------------------------------------------------------------|
         20. | 2019           ADAPTIT HOLDINGS LTD           ADAPTIT HOLDINGS LTD                               ADAPTIT HOLDINGS LTD |
         21. | 2018           ADAPTIT HOLDINGS LTD           ADAPTIT HOLDINGS LTD                               ADAPTIT HOLDINGS LTD |
         22. | 2017           ADAPTIT HOLDINGS LTD           ADAPTIT HOLDINGS LTD                               ADAPTIT HOLDINGS LTD |
             +-----------------------------------------------------------------------------------------------------------------------+
        
        .

        Comment


        • #5
          Hello Andrew,

          sorry for the late response! Thank you so much for the help with this question, too!

          Best regards
          Nina

          Comment


          • #6
            Hello Andrew and Nina, I have a somewhat similar challenge (am not sure if this is the right approach to things, Am new here, just joined yesterday)
            here is the thing; I have this dataset that is a kind of pooled cross-section that I wish to convert to panel data.
            here is a sample of the data; there are actually 200 columns
            Code:
            * Example generated by -dataex-. To install: ssc install dataex
            clear
            input str18 DMTX double DRHM str18(DDEX DTINC DSFQ) double(DDAI DZIL2 DGMM DVOW)
            "-"                     .14869987152670872 "-"                  "-"                  "-"                     .03498227770072424     .1447371992898598  .0016916740217710338   -.08455828026598182
            "-"                    .048443450290235376 "-"                  "-"                  "-"                    -.05985705777248357    .04540237517073912   .027755341801894422  -.052952389736967594
            "-"                     .14620599670278336 "-"                  "-"                  "-"                    -.04577130186886285   -.07641740124579784    .03836536400657287   -.06372099440787604
            "-"                     .07086983609331364 "-"                  "-"                  "-"                     .14257261410788388    .06190286721977433  -.014036053392046182    .06564780942804142
            "-"                    -.04539349407801651 "-"                  "-"                  "-"                   -.042417199302730996    .04260358314174823  -.003140265177948479   -.05488444737291654
            "-"                     .06760366271152019 "-"                  "-"                  "-"                      .0526395631067961    .10218333636512872   .006300315015750828   -.03115747435102925
            "-"                     -.0574380514757703 "-"                  "-"                  "-"                   -.027669693039342868    .11984139763304084    .10532173913043469  -.004388614477097521
            "-"                     .04531859849561087 "-"                  "-"                  "-"                    -.06625166740773676   -.03597168851616325    .11422997041978732   -.07195502810743294
            "-"                     .04633663083052579 "-"                  "-"                  "-"                   -.005714285714285706   -.05876935238492979    .07054902846814284  -.006326558083187439
            "-"                                      0 "-"                  "-"                  "-"                    -.04054916985951467  -.008917570902810052   -.02796391072653412    .12579827379339706
            "-"                     .11000061525420259 "-"                  "-"                  "-"                    .028785357737104774    .12399868890203543     .0924387993269283   -.03394958272095162
            "-"                     .01029118320892767 "-"                  "-"                  "-"                     .04997573993207187    .06583734303485511   -.06578555102852023 -.0002935969181219826
            "-"                    .020384899081338323 "-"                  "-"                  "-"                  -.0056993222427603905      .178628389154705    .08727794915434527    .09402310307388342
            "-"                     .08888981820571502 "-"                  "-"                  "-"                  -.0048024786986832265  -.021246057943279727    .05444406398278137   .010176440442199276
            "-"                    -.03921192103848223 "-"                  "-"                  "-"                   -.028642590286425847  -.021707251465709405   .014381146780478726   -.03392601182135888
            "-"                    -.05608757473489457 "-"                  "-"                  "-"                    -.06378205128205124     -.129437782350576   -.12979054239458518   -.07807016812676615
            "-"                    .048306986817667534 "-"                  "-"                  "-"                     .08661417322834637    .03364555173678568    .02985074626865675    .12288093451353045
            "-"                    .014987130804122777 "-"                  "-"                  "-"                     .02079395085066163   .023347428530123945    .06909573382322919   .049253587129812905
            "-.0105203066383951"     .1123272249671649 "-"                  "-"                  "-"                      .1828530465949821    .02544748206058458   -.10677804295942724    .14810722041884417
            "-.0698096101541251"     .0598461420502466 "-"                  "-"                  "-"                    .018561786085150474    .06477327163257578 -.0012290920750280007  -.027939122123373253
            ".1118199539252171"     .12731078454541522 "-"                  "-"                  "-"                     .09264687141582766    .10290550136879961   -.24959871589085075    .20024731846703334
            "-.0637551801083838"  -.055557457003508226 "-"                  "-"                  "-"                    -.08432470258922312   -.14407251882956745   -.02581105169340467   -.11829102110458387
            ".0761831801157644"    -.04050209735723921 "-"                  "-"                  "-"                     .05464272067252569   .022763731283310003    .07150698968015817  .0072859981557723205
            "-.0139207466582299"    .07839462167100211 "-"                  "-"                  "-"                    .010386473429951684  -.028211180313389775    .06297814207650272  -.011829856365558765
            ".0648913130664955"      .1278620774194678 "-"                  "-"                  "-"                     .09562514941429597     .1432233720485643    .04048322837681521     .1075149561915697
            ".0122024706236819"     .07734527839021219 "-"                  "-"                  "-"                   -.013746454287584453    .06941406100081693   .014575098814229335    .15292087110702704
            "-.0166691471945231"  -.003527292379751383 "-"                  "-"                  "-"                    .016482300884955694    .04300915399266341   -.02538349159970774    .11041737984171353
            ".0328439533827759"    -.01185590680150846 "-"                  "-"                  "-"                    -.06355424964631629    .07892725391453517   .025107738429829378  -.038931220436935254
            "-.1038980070339976"    -.1129926964565374 "-"                  "-"                  "-"                     -.0634514816966879   -.02227588013530905  -.016815938585267722   -.08781496713282365
            ".053965658217498"     -.01602643433493388 "-"                  "-"                  "-"                   -.049633949621541135   -.03316977931857151  -.006444816260767132  .0038156920993654415
            ".0367726920093094"    -.07692210944672931 "-"                  "-"                  "-"                    .017756887322104706   .007870277773092098  -.007734048524917414    .05216568369096916
            "-.0219245734809936"    .02999831954909423 "-"                  "-"                  "-"                     .04605516356638875   .029724204712549013    .08906908039474504    .08779375152186772
            ".1005278861602019"     .08870996190207414 "-"                  "-"                  "-"                   -.049546234976698626  -.016634275802980034   .013390280503289978    .06029693924166276
            ".094751477233229"    -.024305189913406845 "-"                  "-"                  "-"                      .1587096774193548   .036815871059448016    .09391730265406072    .15776026609334826
            "-.0291465582931166"  -.040680611537519555 ".025662328071633"   "-"                  "-"                    -.04677060133630293     .1182815044237711    .06987035976466921   .048731927878979515
            ".1409510105304468"     .07285559127827222 ".031770317703177"   "-"                  "-"                     .08084112149532713    .04827275819021958    .03951530488101613   .056665838685639285
            ".142857142857143"       .1048245932450855 ".0298325191905094"  "-"                  "-"                     .03091223519239083    .07511262814547717   -.04770375918730409  -.003139912485433798
            "-.0490068218298556"   -.07407420928127109 "-.0044892427579197" "-"                  "-"                     .05724470538897052   -.02493806592207226   -.04483334971979145    .09090970341324067
            ".1404609947782056"      .1653275962676472 ".1462605292265804"  "-"                  "-"                      .1828530465949821    .13881321695298443  .0021616057642819737     .1974739832628231
            "-.0086023494588844"    .03222521968020319 ".2679891928836331"  ".1363333333333333"  "-"                    -.01853357177694685     .0721756181704272                     0   .005338105823435011
            ".0854637059152827"    .018675048447922088 "-.0272422226013764" "-.03461425638017"   "-"                     .13914195792612222    .11569540484588714   -.02172350041084629   .018594426545730586
            ".0261303077187553"    -.06203160270880362 ".0253157156220768"  ".2844728046186569"  "-"                   .0026901265086520616  -.012105901814184784  .0038322221638930638    .03069023437598379
            ".0632015412966996"    -.05043617967681544 "-.0453327250955124" ".0628311884935654"  "-"                   -.036183017910231374   -.02997258319712142  -.043928459366175114    .14743063496251987
            "-.0849320464841442"    -.0563312335260681 ".1162346195197707"  ".0614761396011396"  "-.1305678699598901"   .022344267228408057    .02207029503244453   -.06164533420851101    .14325046579717857
            "-.1082698351198933"   -.05514847523930885 "-.031785102739726"  "-.0884462151394421" "-.0894743231759136"     .0749871219368609    .17988119369392566    .16415039347129115    .05341973071285296
            ".0120208554600754"     .03862665992307601 ".0453188902398585"  "-.0497331615752668" "-.0316000000000001"    .03388554216867462  -.062335091571987654   -.30278904411396523    .18916510484812052
            "-.1520297667318609"   -.07024676398310369 "-.1031511050015861" "-.0515129508593562" "-.0557620817843866"   -.07124412368403622  -.014264252014755065   .026716460787130126   -.15907387803166373
            ".0966471647164717"   -.025424279334145306 "-.1791546306667452" ".1002501148486551"  ".0352872557596967"    -.04690953161759472    .16109230922022666  -.030288192501399077  -.031392552777679585
            "-.0720221606648199"   -.09923428790441524 "-.193909796035622"  "-.1994896775690095" "-.1290140845070422"   -.18370857954970457   -.19576796165373214    .13691120248142552   -.03170720576826538
            "-.1081813156440022"   -.07350914354956564 "-.0350142551674982" "-.0521587945523037" "-.0663001293661061"   .032804911573352864 -.0021925877444162545  .0027282532834209654   .010628611286537049
            "-.1265108783239325"  -.008306543399692548 "-.0315760317606869" ".0133292571079179"  "-.0483200554208521"  -.017744654422855118    .07370055153791068   -.07732219691217412     .1857215072757897
            ".0370422934998581"     .07559649652672923 ".0444274954714462"  "-.2073855065467929" ".0223839854413102"    -.05473760274591264    .03848141284758642   .046358524207927715   .055723448337704144
            "-.0784863829204872"    .06022145471223047 ".2679891928836331"  "-.1591808769792936" ".1901032395870416"   -.030291447682752045   -.06951377492680219   .023069864988858182    -.0875799832508292
            "-.2426672607113685"   -.12910843713859438 "-.0384753427607495" ".2025350837483023"  "-.132814836972779"    -.20683878596767843   -.18729222096362055   -.08462524023062146    .03580731824825863
            "-.0392195313266007"   -.11778182131507327 "-.0088839119074281" "-.0814636349947297" "-.1586754053121766"  -.042986706423158084   -.06984655378072804   .021205122821751007    .09021490626428899
            ".211438544080693"      .13531044071263193 "-.0255347996384452" "-.0745081967213115" "-.1213612136121362"    .10658185122679467   -.11377927854936258  -.026452850877192884   .050478200064502377
            "-.178450907922224"    -.20431554923561948 "-.0911339568678983" "-.1795235143034275" "-.2186187587494166"   -.18864382918817454   -.19999960678376646   -.24419259467830493    .20024731846703334
            "-.1771149144254279"   -.28445139789870005 "-.0182003742133016" "-.2914507772020725" "-.7823230815168708"   -.19144013880855978    -.4758061543225503   -.21365372077861597    .20024731846703334
            "-.0572854765866414"    -.3102035374633365 "-.0072765072765073" "-.0595673369896405" ".037037037037037"     -.14234620886981403   .007693569938348442    -.2174582494374039   -.31882228621282793
            ".211438544080693"       .1653275962676472 "-.0311518324607329" "-.2429936821642637" "-.123015873015873"      .1551292743953294    .09465608367141838  -.015135462388375966   -.07980360453719718
            ".1268193384223918"     .08875351360880691 ".1206881023146898"  "-.0622726300021399" "-.2232277526395173"   -.19314079422382666   -.06555140449080037   -.11710465652374352    .01659277651706597
            "-.0866227079757925"    .04317905815679395 "-.0643735433577112" "-.1743496120492926" "-.5300970873786408"    -.1807606263982104    .12387995888255153    -.5463881636205397    -.2661940437951008
            "-.0943433544303798"   .007347044366834804 ".0815152035732691"  "-.3090105030403538" "1.042285155021619"     .11305297651556528    .03187046225323156    .09516500383729856    .20024731846703334
            ".211438544080693"       .1653275962676472 ".03550154872528"    ".1128"              ".6377749029754204"      .1828530465949821    .17988119369392566    .18189001269778823    .03458224072096673
            "-.0472001223990208" -.0016751466622182013 ".1301579996932045"  ".5425483762466865"  "-.0821484992101107"    .03703703703703714    .17988119369392566    .07997385051209417    -.0511054136188269
            ".1287033319951828"    .034422497162789764 ".0128944689514761"  "-.2147386835775202" ".1273666092943202"    -.05714285714285722   -.10275572267329558   .018361581920903886       .08375447345769
            "-.0299473609332765"    .11568879525614008 ".2643216080402009"  ".4937343358395991"  ".4389312977099238"      .1828530465949821    .09377734880952975     .1200713295026749    .03817434940430805
            ".1292073036591626"   -.044884440663855274 "-.002543720190779"  ".1897837434750186"  "-.6132625994694961"   -.09396991858700154    -.0667672541892418  -.008137272244825772    -.5137358361520368
            ".130333138515488"       .1653275962676472 "-.0454255658272235" ".0783453462864305"  ".5706447187928668"     .09503502893694805    .10487624441483111    .09006598894239339   -.12150425901674082
            "-.0367114788004137"    -.0890596378608829 ".1968052540769189"  ".0039232781168267"  ".211353711790393"    -.028094575799721976   .037529071894323626   .007526178010471218   .004849361885555082
            ".1295401681875112"     .15083785627428312 ".0543645072780542"  ".0816326530612245"  ".2804614275414566"      .0827132226674299     .0815596926259285   -.08639168561221176   -.25671293459165756
            ".0688526321347485"     .07863865494242679 ".1509791813690896"  ".0339890271644586"  "-.1762387387387388"   .056304520222046066    .05180279413827637  -.021329541414859505    -.0620965664130266
            "-.0148693375487824"    .04073187398158358 ".0493581145813374"  ".5425483762466865"  "-.1196172248803828"   -.09547047047047041    .06920071381609849   -.02833272793316386   -.13410788260157713
            ".0196068598936918"    .029187997887922205 "-.0105905123616842" ".0004151100041511"  "-.0939440993788821"   -.06902752801217331   .010495635017542464     -.020373831775701   -.02955521245320545
            ".1479368514237938"      .1266818944287805 ".1682353375410622"  "-.1135269709543569" ".1456726649528705"     .12451708766716212    .10502240234507439    .18189001269778823    .12024775736864604
            "-.0304185767533524"  .0013027226507436067 ".1603740798079049"  "-.0297697060475566" "1.042285155021619"     .10795454545454528    .12845832389295866     .1246594889090673   .005653586506099003
            ".0593875657284256"    -.16116926410863777 ".0669262395512839"  ".0350250868390582"  ".0192098586444364"    .048896839594514116   -.08739257011873755   -.02629757785467129  -.015607951775530317
            ".0224400417101147"     .02567402567402569 "-.0696439964272043" "-.1940896802461079" "-.0430298719772404" -.0019329164297896726    -.1196211650138343    .12508884150675198 -.0066267333270444905
            ".005344103128952"      .02775237053413436 ".0790816326530612"  "-.1140543666859456" ".234113712374582"     .013670539986329493    .17988119369392566    .18189001269778823   .062099882091335615
            "-.0024346696964778"   -.03610831600366728 ".1000025420066601"  "-.1822692257474866" "-.0593194820837098"  -.027421892560125845     .0289371599310737  -.027464736174341416  .0015013057261961831
            "-.0779775463716239"    .08107882392788045 ".1379382062718092"  ".0630688168609292"  "0"                     .12537554887913097    .09220867432242169    .18189001269778823    .07243077564016716
            ".0519257069748975"     .06829437868552746 ".1687583769952479"  "-.0750976269149895" "-.0345710627400768"    .04938905431769178   .004432504698757116     .1199301377838152    .19270016787602154
            ".055569535312867"     -.01864461933400016 ".037079510703364"   "-.4291977914907438" ".0175729442970823"     .09207436399217217    .01975234371083364   -.08935482007739848    .17308536780422545
            end
            I converted to panel format using the following lines of code (I don't know how to show lines of code like the data above with dataex)

            // fix the variable that were left as string because "-" isn't a number
            destring DMTX-DVOW, replace force
            // make a Stata Internal Format monthly date
            generate Month = mofd(Date)
            format Month %tm

            // give variables a common prefix
            rename (DMTX-DVOW) (value=)
            reshape long value, i(Month) j(Firm) string
            replace Firm = substr(Firm,1,1)+":"+substr(Firm,2,.)
            sort Firm Month value

            The code actually worked, but I noticed that the Firm was sorted alphabetically which is not what I want. I want to maintain the order it appears in my original data, because am going to add a few more variables in a certain order.

            How can I fix that? thanks

            Comment


            • #7
              Code:
              preserve
              gen Firm=""
              foreach var of varlist DMTX-DVOW{
                  replace Firm= "`var'" in `i'
                  local ++i
              }
              replace Firm = substr(Firm,1,1)+":"+substr(Firm,2,.)
              keep Firm
              drop if trim(Firm)==":"
              gen order=_n
              tempfile order
              save `order'
              restore
              
              *YOUR CODE HERE
              
              merge m:1 Firm using `order', nogen
              sort order Month

              Comment


              • #8
                Thanks Andrew, but I got the following error

                preserve

                .
                . gen Firm=""
                (83 missing values generated)

                .
                . foreach var of varlist DMTX-DVOW{
                2.
                . replace Firm= "`var'" in `i'
                3.
                . local ++i
                4.
                . }
                '' invalid observation number
                r(198);

                Comment


                • #9
                  You have more variables than observations.

                  Code:
                  preserve
                  set obs 400
                  gen Firm=""
                  foreach var of varlist DMTX-DVOW{
                      replace Firm= "`var'" in `i'
                      local ++i
                  }
                  replace Firm = substr(Firm,1,1)+":"+substr(Firm,2,.)
                  keep Firm
                  drop if trim(Firm)==":"
                  gen order=_n
                  tempfile order
                  save `order'
                  restore
                  
                  *YOUR CODE HERE
                  
                  merge m:1 Firm using `order', nogen
                  sort order Month

                  Comment


                  • #10
                    Think I just learnt how to present codes better.
                    I ran these lines of code
                    Code:
                     preserve
                    gen Firm=""
                    foreach var of varlist DMTX-DVOW{
                        replace Firm= "`var'" in `i'
                        local ++i
                    }
                    and got the following error
                    preserve

                    . gen Firm=""
                    (83 missing values generated)

                    . foreach var of varlist DMTX-DVOW{
                    2. replace Firm= "`var'" in `i'
                    3. local ++i
                    4. }
                    '' invalid observation number
                    r(198);

                    end of do-file

                    Comment

                    Working...
                    X