Stata 从宏到变量的随机彩票号码

Stata 从宏到变量的随机彩票号码,stata,Stata,我在宏中有以下彩票号码: global lottery 6 9 4 32 98 如何使用50观察值模拟变量,其中每个观察值都是从宏中存储的数字中随机获得的 下面的代码生成一个错误: set obs 50 global lottery 6 9 4 32 98 g lot=$lottery invalid '9' r(198); 以下是两种类似的方法: clear set obs 50 set seed 2803 local lottery 6 9 4 32 98 * method

我在宏中有以下彩票号码:

global lottery 6 9 4 32 98
如何使用
50
观察值模拟变量,其中每个观察值都是从宏中存储的数字中随机获得的

下面的代码生成一个错误:

set obs 50
global lottery 6 9 4 32 98

g lot=$lottery
invalid '9' 
r(198);

以下是两种类似的方法:

clear 
set obs 50 
set seed 2803 
local lottery 6 9 4 32 98

* method 1 
generate x1 = ceil(5 * runiform())

tabulate x1 

generate y1 = . 
forvalues j = 1/5 { 
    replace y1 = real(word("`lottery'", `j')) if x1 == `j'
}

* method2 

set seed 2803 
generate x2 = runiform()
generate y2 = cond(x2 <= 0.2, 6, cond(x2 <= 0.4, 9, cond(x2 <= 0.6, 4, cond(x2 <= 0.8, 32, 98))))

tab1 y? 
清除
设置obs 50
播种2803
本地彩票6943298
*方法1
生成x1=ceil(5*runiform())
表格x1
生成y1=。
对于值j=1/5{
如果x1=`j',则替换y1=real(单词(`lotking',`j'))
}
*方法2
播种2803
生成x2=runiform()
生成y2=秒(x2