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

# Re: st: Insert new observation by group

 From Nick Cox 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
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/
```