Bookmark and Share

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

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

Re: st: Replace with returned results in svy loop

From   Kate Schneider <>
Subject   Re: st: Replace with returned results in svy loop
Date   Sun, 29 May 2011 16:27:44 -0700

Thanks so much Richard,

We are trying to monetize own consumption of food items, so the mean
we are calculating is the average price reported by households who
bought the food and we want to apply this to the missing data.
Observations are missing where households ate food they produced
themselves or did not report the price they paid for the item if they
bought it.

Is there a better way you recommend attributing these prices to the
cases where we don't have a value? We were previously manually keeping
track of the mean prices and then manually telling stata to replace
(for example) price_eggs == $1 if price_eggs==. We are trying to avoid
manually going between excel and stata, thinking that it would be more
valid to have stata do all of this for us.

The other approach we were considering would be to create a new
variable where every observation of eggs get the mean egg price value,
and then when we calculate the total value of egg consumption to
specify drawing from the reported price if not missing, and if missing
use the new value. Does that sound like a more valid approach?
Regardless when we use ereturn list, there isn't a scalar listed for
our mean. We tried e(mean), but it returned an error. Do we have to
tell stata to store e(mean) before our svy: mean calculation?

The other thing we should specify is that our data is hierarchical
with 2 unique identifiers, a household ID and an id for each of the 65
different food items. We are trying to value total consumption per
food item and also per household. We thought about collapsing food
items to their mean price, but thought that probably wouldn't apply
our survey weights (though perhaps stata is smarter than we are?).

Thanks so much for your assistance, we are really grateful!


On Sun, May 29, 2011 at 5:11 PM, Richard Williams
<> wrote:
> If in doubt where a value is stored, type -ereturn list- after the
> estimation command. After -mean-, e(b) has the mean of the variable. So, to
> get the mean stored in a scalar, do something like
> webuse nhanes2f, clear
> svy: mean houssiz
> mat varmean = e(b)
> scalar vmean = varmean[1,1]
> Having said that, substituting the mean for missing data is generally not
> considered the best practice in the world. And, there may be other errors in
> your code (e.g. the == in the replace command looks wrong) but I imagine
> those will become obvious once you tidy other things up.
> At 03:11 PM 5/29/2011, Kate Schneider wrote:
>> Hello,
>> Sorr to bug everyone on a holiday weekend, but we're a graduate
>> student research group at the University of Washington working with a
>> large household survey dataset and have come up against some trouble.
>> We're trying to replace missing values of a variable with the results
>> of some other operation we've just performed (basically, a mean).
>> Right now, we're having trouble with the replace component of the
>> below operation. Does anyone know how torecall the previous command's
>> results from the svy calculation and use that data to replace missing
>> in a loop?  Is this possible with survey data?
>> foreach X of varlist $fooditemall {
>> quietly count if `X'==1 & priceperkilo !=.
>>  if `r(N)'>0 {
>>  display "Variable is: " "`X'"
>>  svy, subpop(`X'): mean priceperkilo
>>  }
>> quietly count if `X'==1 & priceperkilo ==.
>>  if `r(N)'>0 {
>>  replace priceperkilo == e(????) if `X'==1 & priceperkilo ==.
>>  }
>> }
>> Thanks for your insight!  If you need more information please let me know.
>> Kate
>> *
>> *   For searches and help try:
>> *
>> *
>> *
> -------------------------------------------
> Richard Williams, Notre Dame Dept of Sociology
> OFFICE: (574)631-6668, (574)631-6463
> HOME:   (574)289-5227
> EMAIL:  Richard.A.Williams.5@ND.Edu
> WWW:
> *
> *   For searches and help try:
> *
> *
> *

*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index