Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: Question about fillin
From
Nick Cox <[email protected]>
To
[email protected]
Subject
Re: st: Question about fillin
Date
Thu, 14 Feb 2013 15:39:43 +0000
-fillin- doesn't support -if- or -in- either, so a loop over groups is
out of the question (without some awful choreography of files).
This is an in-place solution. The use of -contract- as an expansion
command is perhaps counter-intuitive, but it works for your example.
History bites me here, as the name -contract- was my suggestion.
If you have other variables you are not telling us about, as seems all
too likely, I guess that makes things no more difficult than the need
for a -merge- as well.
. egen group = concat(ind stock), p(" ")
. contract period group, zero
. split group, destring
variables born as string:
group1 group2
group1 has all characters numeric; replaced as byte
group2 contains nonnumeric characters; no replace
. rename (group?) (individual stock)
. gen _fillin = 1 - _freq
. drop _freq group
. sort individual stock period
. list individual stock period, sep(8)
+---------------------------+
| indivi~l stock period |
|---------------------------|
1. | 1 A 1 |
2. | 1 A 2 |
3. | 1 C 1 |
4. | 1 C 2 |
5. | 1 E 1 |
6. | 1 E 2 |
7. | 1 F 1 |
8. | 1 F 2 |
|---------------------------|
9. | 2 G 1 |
10. | 2 G 2 |
11. | 2 H 1 |
12. | 2 H 2 |
13. | 2 I 1 |
14. | 2 I 2 |
15. | 2 K 1 |
16. | 2 K 2 |
+---------------------------+
On Thu, Feb 14, 2013 at 2:16 PM, André Gyllenram
<[email protected]> wrote:
> I have a question about the command fillin.
>
> It is not possible to combine this with by. But can you do in some other way?
>
> I would like to write like this:
>
> by individual: fillin individual stock period.
>
>
> My data looks like this;
>
> INDIVIDUAL STOCK PERIOD
> 1 C 1
> 1 E 1
> 1 A 2
> 1 F 2
>
> 2 G 1
> 2 H 1
> 2 I 2
> 2 K 2
>
> And I would like to add observations with missing data so that in every time period there is a row for all stocks that the individual owns in any period. Individual 1 owns
> stock C, E, A and F in period 1 or 2. This means that i want a row for these stocks in every time period for individual 1.
>
> Individual 2 owns stock G, H, I an K in period 1 or 2. So for every time period I want a row for these stocks for individual 2. In this example I want to add observations so the data looks like this:
>
>
> INDIVIDUAL STOCK PERIOD
> 1 A 1
> 1 C 1
> 1 E 1
> 1 F 1
> 1 A 2
> 1 C 2
> 1 E 2
> 1 F 2
>
> 2 G 1
> 2 H 1
> 2 I 1
> 2 K 1
> 2 G 2
> 2 H 2
> 2 I 2
> 2 K 2
>
> So in this example I want to add 8 rows. If I write fillin individual period I would add much more rows than i want to since the individuals together own stocks A, C, E, F, G, H, I
> and K.
*
* 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/