Ashim: I can only comment on what you post. If you post incorrect or inefficient code people are likely to spot it.
You are correct insofar as your original solution, minus a line that was illegal, plus a line replacing it, plus a line that is a fix gets you where the questioner appears to want to be.
You can also get there directly in one line.
My earlier post has appeared on Statalist. See the archives if you are still missing it.
Nick
[email protected]
Ashim Kapoor
Nick,
I know it is not exactly what is written but it does the job of
grouping 2 consecutive variables and hence can be used in the by
command. To refine it you may say
egen j=group(var)
then we will have 1 1 2 2 3 3 etc.
By the way I never got your 1st post. Email got eaten up I guess.
On Wed, Nov 12, 2008 at 8:48 PM, Nick Cox <[email protected]> wrote:
> The first line won't work, as already explained in my earlier posting.
>
> But suppose you had a variable with values 1 up.
>
> The second line would replace 1,2,3,4,5,6, ... with 1,1,3,3,5,5,...
> which is not what I think is being asked for.
Ashim Kapoor
> egen var=_n , by(group)
> by group : replace var=var-1 if mod(var,2)==0
>
> I think this should work.
>
> What the second line says is that for every even number var should
> have the value of the previous var which is itself -1 .
>
> Can someone approve this ? I am not 100% certain.
>
> On Wed, Nov 12, 2008 at 4:36 PM, Linn Renée Naper <[email protected]> wrote:
>
>> egen var=_n, by(group) will give me a variable counting from 1 til N within each group of the data.
>> BUT: how do I tell stata that the observations are double in the sense that I need a variable that repeats each number ones,
>> like this: 11 22 33 44.... instead of 1 2 3 4.....
>> I need this variable in order to collapse the data.
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/