Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Mario Jose <mariojose276@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Re: Group classification |
Date | Sun, 14 Jul 2013 15:47:27 +0100 |
Dear Joseph, I have implemented your suggestion, and the strategy did what wanted. Thank you for your helpful suggestion. Best, Mario 2013/7/14 Joseph Coveney <stajc2@gmail.com>: > Mario Jose wrote: > > I have a dataset with foreign subsidiaries over a period of time. Each > subsidiary is owned by an identified parent company. For each year, > there are parent companies with subs in a set of countries y1,.., yn > and parents with subs in a different set of companies x1, ..., xm. > There are also parent companies with subs in both set of countries. I > would like to allocate 0,1 to observations according to whether or not > the respective parent has subs in the countries x1,..., xm. For > instance, if a parent company has subs in y1, y2, y6 I want to > allocate 1 to all these observations, if another parent company has > subs in countries y1, y2 and x5 I want to allocate 0 to all subs of > that parent (because the parent has a subs in country x5). > > Any suggestion on how to do this? > I will be grateful for any help. > > > > If I understand what you're trying to do, then it would be something like > generating an indicator variable based either upon an -inlist()- or a -foreach- > loop, and then using -bysort . . . egen-. You'd use -inlist()- if the list of > countries is short enough, and a -foreach- loop otherwise. Something like that > below might be able to give you an idea where to start. > > Joseph Coveney > > . input str1 parent str2 subsidiary str2 country > > parent subsidi~y country > 1. A AA y1 > 2. A AB y2 > 3. A AC y6 > 4. B BA y1 > 5. B BB y2 > 6. B BC x5 > 7. end > > . > . generate byte in_an_x = 0 > > . foreach country in "x1" "x2" "x3" "x4" "x5" "x6" "xm" { > 2. quietly replace in_an_x = 1 if country == "`country'" > 3. } > > . bysort parent (subsidiary): egen byte allocate = max(in_an_x) > > . quietly replace allocate = !allocate > > . > . list, noobs sepby(parent) abbreviate(20) > > +----------------------------------------------------+ > | parent subsidiary country in_an_x allocate | > |----------------------------------------------------| > | A AA y1 0 1 | > | A AB y2 0 1 | > | A AC y6 0 1 | > |----------------------------------------------------| > | B BA y1 0 0 | > | B BB y2 0 0 | > | B BC x5 1 0 | > +----------------------------------------------------+ > > . > . exit > > end of do-file > > > * > * For searches and help try: > * http://www.stata.com/help.cgi?search > * http://www.stata.com/support/faqs/resources/statalist-faq/ > * http://www.ats.ucla.edu/stat/stata/ * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/