Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: st: Weights now allowed
From
"Sarah Edgington" <[email protected]>
To
<[email protected]>
Subject
RE: st: Weights now allowed
Date
Thu, 13 Sep 2012 11:23:07 -0700
It still doesn't work is not really descriptive enough to help us figure out
what's wrong. You should explain what you mean by that. Do you get an
error message? Is the calculation not giving you the result you expect?
Either way, the point still stands that you do not have to loop through your
variables to do this. All your loop appears to be trying to do is tell
Stata to calculate your expression separately for each observation, which is
what Stata does anyway.
See -help egen- for an explanation of how rowmean treats missing values. As
explained there, it will calculate the mean over all the non-missing. If
you're getting a value of zero (when that isn't the mean of the non-missing
values) when there are missing values, then something is probably wrong with
your code.
-egen avg=rowmean(x1 x2 x3)- should get you exactly what you say you're
looking for.
The loop you're trying to write, on the other hand, will always calculate
the mean wrong any time there are missing values because you would need to
divide by the number of non-missing values rather than always dividing by 7.
-Sarah
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Daniel Almar de
Sneijder
Sent: Thursday, September 13, 2012 11:05 AM
To: [email protected]
Subject: Re: st: Weights now allowed
Hello and thanks for the message.
The reason I loop over the data is because sometimes only 3 variables have
an observation.
When I use rowmean then it treats the outcome as 0 if at that row not all
observations have a value. So to clarify, I want to obtain the average in
this way:
x1 x2 x3 avg(x1 x2 x3)
. 1 2 1.5
2 2 3 7/3
4 . . 4
I tried it btw now with 'i' but it still doesnt work???
***** calculates average expretage
drop ravgexpretage
gen double ravgexpretage = r1expretage
forvalues i = 1/30659 {
replace ravgexpretage[`i'] = (r1expretage[`i'] + r3expretage[`i'] +
r4expretage[`i'] + r5expretage[`i'] + r6expretage[`i'] + r7expretage[`i'] +
r8expretage[`i'])/7 }
******
On Thu, Sep 13, 2012 at 1:50 PM, Joerg Luedicke <[email protected]>
wrote:
> You would need to type [`i'] instead of [i] since i is a local macro
> here (see -help macro- and -help forvalues-). However, there is no
> need to loop over all observations in your data, see -help egen
> rowmean-.
>
> J.
>
> On Thu, Sep 13, 2012 at 12:23 PM, Daniel Almar de Sneijder
> <[email protected]> wrote:
>> Hello Stata
>>
>> When I attempt to run:
>>
>> ***** calculates average exp ret age
>> drop ravgexpretage
>>
>> gen double ravgexpretage = r1expretage
>>
>> forvalues i = 1/30659 {
>> replace ravgexpretage[i] = ( r1expretage[i] + r3expretage[i] +
>> r4expretage[i] + r5expretage[i] + r6expretage[i] + r7expretage[i] +
>> r8expretage[i] )
>> replace ravgexpretage[i] = ravgexpretage[i] *(1/7) }
>>
>> I receive the message: "weights not allowed"
>>
>> What is the problem and How can I circumvene this?
>> My initial idea was to add all the variables up and then divide it by
>> 7, which works. However it only adds the observations up if each
>> variable has a observation So that is why I decided to do it like
>> this.
>>
>> Thanks,
>> Daniel
>> *
>> * 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/
> *
> * 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/
*
* 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/
*
* 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/