Example:人文学院20151341班一共有20人,学号从2015134101-2015134120,现要将全班同学随机分成5组,每组4人,stata command 部分如下:
------------------------------分割线-------------------------------
clear
set obs 20 /*设置20个观测值*/
gen i=_n /*生成1,2,3-20,共20个序号,取名为变量 i, _n是 stata 自带,从第1行开始往下数,多少个cases就数到几*/
gen long d =2015134100 /*生成变量d等于2015134100。stata默认数字为float浮点型,超过7位的数字都采用科学计数法,为了让stata完整显示2015134100,需要指定其显示为long即长数字型*/
gen long id= i+d /*生成全班20个学号*/
set seed 20160724 /*设定随机数发生器开始的点,可以随意设置,设置seed不同,产生随机数的结果不同而已,但是同样的seed下产生的随机数是相同的,如果不设置会导致每次产生的随机数都不一样*/
gen r= uniform() /*生成20个随机数,取名为变量i,随机数在0-1之间均匀分布*/
sort r /*对变量r排序,目的是将 r 对应的学号打散*/
gen group=group(5) /*分5组,组变量标识为group*/
list id group, sep(4) /*列出学号及其对应的组,每4个画一条分割线separate(4),默认的是5*/
----------------------------------------------------------------
最后结果如图:
网友评论