1
我有4000个观测值,1000个观测值分别在4个不同的月份。我有一个全球宏,treatment
,我想随机分配给我的观察。我想分开为每个月做这个。 treatment
取35个值。对于每个月,我希望treatment
的前20个值每个都有29个观察值,并且最后15个值为treatment
每个都有28个观察值。这使得总共1000个月。例如,前1000个观察值是Jan
。我想A01
被随机分配到Jan
内的29个观察。 ...和G05
被随机分配到2833观察Jan
。如何从宏中随机分配字符串到观测
clear
set obs 4000
gen ID = _n
gen month = "Jan" if _n<=1000
replace month = "Feb" if _n>=1001 & _n<=2000
replace month = "Mar if _n>=2001 & _n<=3000
replace month = "Apr" if _n>=3001 & _n<=4000
*Create treatment
global letters A B C D E F G
global numbers 01 02 03 04 05
global treatment ""
foreach i in $letters {
foreach j in $numbers {
global treatment $treatment `i'`j'
}
}
在这一点上,什么是随机分配给treatment
观测的最佳方式 - 分别为每一个月?
我想到的方式是创建一个runiform()变量;按这个变量排序,也按月排序;然后将第一个值treatment
分配给前29个观察值等等。但我希望有一个比这更好的方法。
聪明。欣赏它! – bill999 2014-11-09 02:52:01