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: sd() does not work with forvalues

From   Nick Cox <>
To   "" <>
Subject   Re: st: sd() does not work with forvalues
Date   Sat, 16 Jul 2011 10:13:13 +0100

Richard is correct. The error is that -sd()- is an -egen- function and as such can only be used in
-egen- calls.


On 15 Jul 2011, at 18:31, Richard Goldstein <> wrote:

my guess is that the error message refers to the line that starts "gen
nosddff`i'" rather than to the egen line -- and that line shouldn't work outside the loop either; however, you have already calculated this value
and saved it in a variable so why not use that variable at that point?
i.e., change the line to

gen nosddff`i'=diffmedi`i'/sddf`i'


On 7/15/11 1:20 PM, Wilhelm Kluemper wrote:
Hello STATA community,

I am trying out a code where I want to create the standard deviation
of a var as a new var with a loop:


forvalues i = 3/85 {
egen df`i'med = median(_dfbeta_`i')
egen sddf`i'= sd(_dfbeta_`i')
gen diffmedi`i'=_dfbeta_`i'-df`i'med
gen absdiffmedi`i' = abs(diffmedi`i')
gen nosddff`i'= diffmedi`i'/sd(_dfbeta_`i')
drop if nosddff`i'>=2

I keep getting this message:

unknown function sd()

It works perfectly without the forvalues loop but not within. Does
anybody have a clue why that is and what I could do about it?

Thanks already


*   For searches and help try:
*   For searches and help try:

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