Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stata 在一个时间间隔内随机选择年份_Stata - Fatal编程技术网

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