Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Insert new observation by group


From   Nick Cox <njcoxstata@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Insert new observation by group
Date   Thu, 3 Nov 2011 08:04:12 +0000

However, to echo a comment in another thread, what you want is also a
bad idea. It's a spreadsheet idea imported into a statistical software
context. Group characteristics are best stored as group
characteristics. If you do this, then you have to remember to exclude
the observations with summaries from every analysis thereafter. It
seems unlikely that you would really prefer to do that.

Nick

On Wed, Nov 2, 2011 at 9:30 PM, Fernando Luco <flucoestatalist@gmail.com> wrote:
> Thanks for quick response Austin. It was just what I was trying to do.
>
> On Wed, Nov 2, 2011 at 4:22 PM, Austin Nichols <austinnichols@gmail.com> wrote:
>> Fernando Luco <flucoestatalist@gmail.com> :
>>
>> clear
>> input group y  x
>> 1       1       10
>> 1       2       10
>> 1       2       10
>> 2       3       8
>> 2       1       8
>> end
>> g obs=_n
>> bys group x: g e=1+(_N==_n)
>> expand e
>> bys group x (obs): replace y=. if _n==_N
>> by group x: g sumy=sum(y)
>> replace y=x-sumy if mi(y)
>> list, sepby(group)
>>
>>
>> On Wed, Nov 2, 2011 at 5:13 PM, Fernando Luco <flucoestatalist@gmail.com> wrote:
>>> Dear all,
>>>
>>> I'm trying to create a new observation for each group in my data, but
>>> I haven't been able to do so. I tried using -ingap- but didn't work
>>> because
>>> it inserts the new observation at the top of the group or after the
>>> first observation.
>>> My data looks as follows:
>>>
>>> group y  x
>>> 1       1       10
>>> 1       2       10
>>> 1       2       10
>>> 2       3       8
>>> 2       1       8
>>>
>>> What I want is to insert a new observation at the end of each group,
>>> and this observation must be the difference between "x" (in my case
>>> this is 10 for group one and 8 for group two) and the sum of "y"
>>> (6 for group one and 3 for group two). So, the idea is that the final
>>> dataset should look as follows
>>>
>>> group y x
>>> 1       1       10
>>> 1       2       10
>>> 1       2       10
>>> 1      5       10
>>> 2       3       8
>>> 2       1       8
>>> 2      4       8
>>>

*
*   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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index