Stata 在一个时间间隔内随机选择年份
我想在我的数据子集中随机选取Stata 在一个时间间隔内随机选择年份,stata,Stata,我想在我的数据子集中随机选取3年,比如从2007年到2016年,除了2008年、2012年和2014年。我想重复这个过程500次 如何在满足所需条件的情况下进行此模拟 请注意,这是我的一个问题的后续问题,在我的一个问题中,我被提供了一个无条件案例的解决方案。最简单的方法是首先将数据子集: sysuse uslifeexp, clear set seed 12345 // preserve keep if year >= 1946 & year <=1957 drop if
3年
,比如从2007年
到2016年
,除了2008年
、2012年
和2014年
。我想重复这个过程500次
如何在满足所需条件的情况下进行此模拟
请注意,这是我的一个问题的后续问题,在我的一个问题中,我被提供了一个无条件案例的解决方案。最简单的方法是首先将数据子集:
sysuse uslifeexp, clear
set seed 12345
// preserve
keep if year >= 1946 & year <=1957
drop if inlist(year, 1948, 1952, 1954)
tempname sim
postfile `sim' id year1 year2 year3 using results, replace
forvalues i = 1 / 500 {
generate random = runiform()
sort random
post `sim' (`i') (year[1]) (year[2]) (year[3])
drop random
}
postclose `sim'
// restore
对于此问题,
sample
命令可能是一个不错的选择:
generate tag = !inlist(year, 2008, 2012, 2014)
keep if tag
expandcl 500, generate(ex) cluster(tag)
set seed 582019
sample 3, by(ex) count
generate tag = !inlist(year, 2008, 2012, 2014)
keep if tag
expandcl 500, generate(ex) cluster(tag)
set seed 582019
sample 3, by(ex) count