Bookmark and Share

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


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

Re: st: replacing with mean


From   "Dimitriy V. Masterov" <dvmaster@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: replacing with mean
Date   Thu, 2 Dec 2010 14:41:50 -0500

Fabio,

Nick's suggestion can be implemented in the 2nd loop below:

************************************************************
clear all
set more off

/* Fake Data */
set obs 26

gen str1 industry=""

local c=1
foreach l in `c(ALPHA)' {
	replace industry = "`l'" in `c'
	local ++c
}

expand 27

sort industry

forvalues v=1/20 {
	gen Var`v'=round(uniform()*`v',1)
}

gen listA=_n


/* Actual Loop */
levelsof listA, local(listA)

foreach var of varlist Var* {
	qui gen `var'_med=.
	
	foreach firm in `listA' {
		qui gen inc=cond(listA != `firm',1,.)
		qui egen med=median(`var'*inc), by(industry)
		qui replace `var'_med=med if listA==`firm'
		qui drop med inc
	}

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


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index