Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# Re: st: collapse with multiple sets of weights

 From Scott Merryman To statalist@hsphsun2.harvard.edu Subject Re: st: collapse with multiple sets of weights Date Thu, 12 Apr 2012 10:55:00 -0500

```Normalize the weights to sum to n and rescale population so the
weighting cancels out:

clear
input pop avgwage
10      20
20      10
40      30
end

egen double w=total(pop)
replace  w=3*pop/w
gen double pop2 =pop/w^2
collapse (sum) pop2  (mean) avgwage [w=w]
l

Scott

On Thu, Apr 12, 2012 at 10:05 AM, Dimitriy V. Masterov
<dvmaster@gmail.com> wrote:
> I am trying to aggregate some spatial data. Here's a simplified
> version of my problem. I have two variables, average wage and
> population, in three areas. I would like to sum the population, but
> calculate a weighted mean of the average wage. Is there a way to do
> this in one step using collapse?
>
> For example, the following code gets the mean right, but the population "wrong":
> set obs 3;
> input
> pop avgwage;
> 10      20;
> 20      10;
> 40      30;
> egen double w=total(pop);
> replace w=pop/w;
> collapse (sum) pop (mean) avgwage [w=w];
>
> I would like to see 70, not 90.
>
> Is there a collapse-like command where I apply the weight only to the
> mean calculation? I suppose I could do this in two collapse steps, but
> that seems clunky.
>
> DVM

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