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