Random Stata-如何生成随机整数

Random Stata-如何生成随机整数,random,integer,stata,Random,Integer,Stata,我正在学习Stata,想知道如何生成随机整数(无需替换)。如果我总共有10行,我希望每行都有一个从1到10的唯一整数。在R中,可以简单地执行以下操作: sample(1:10, 10) 但在斯塔塔似乎更难做到。从中,我看到: 如果我替换a=1和b=10,我得到的东西接近我想要的东西,但它是替换样本 在弄清楚这一部分之后,我将如何处理以下问题:我的数据是成对的。例如,在10次观察中,有5组2人。每组2个都有一个唯一的标识符。我将如何按随机顺序排列这些组(而不是观察结果)?数据如下所示: obs

我正在学习Stata,想知道如何生成随机整数(无需替换)。如果我总共有10行,我希望每行都有一个从1到10的唯一整数。在R中,可以简单地执行以下操作:

sample(1:10, 10)
但在斯塔塔似乎更难做到。从中,我看到:

如果我替换a=1和b=10,我得到的东西接近我想要的东西,但它是替换样本

在弄清楚这一部分之后,我将如何处理以下问题:我的数据是成对的。例如,在10次观察中,有5组2人。每组2个都有一个唯一的标识符。我将如何按随机顺序排列这些组(而不是观察结果)?数据如下所示:

obs   group  mem     value
1     A      x       9345
2     A      y       129
3     B      x       251
4     B      y       373
5     C      x       788
6     C      y       631
7     D      x       239
8     D      y       481
9     E      x       224
10    E      y       585  
obs
是观测值<代码>组是观察(行)所属的组
mem
是组中的成员标识符。每组有一个
x
和一个
y

第一个问题:

你可以随意移动观察标识符

set obs 10
gen y = _n 
gen rnd = runiform()
sort rnd 
还是在马塔

jumble(1::10)
第二个问题:有几种方法。这里有一个

gen rnd = runiform() 
bysort group (rnd): replace rnd = rnd[1] 
sort rnd 
一般性意见:对于再现性,事先设置随机数种子

set seed 2803 
或者别的什么

第一个问题:

你可以随意移动观察标识符

set obs 10
gen y = _n 
gen rnd = runiform()
sort rnd 
还是在马塔

jumble(1::10)
第二个问题:有几种方法。这里有一个

gen rnd = runiform() 
bysort group (rnd): replace rnd = rnd[1] 
sort rnd 
一般性意见:对于再现性,事先设置随机数种子

set seed 2803 

或者别的什么

您还可以阅读Stata博客系列的第2部分:您还可以阅读Stata博客系列的第2部分:在第二个问题的解决方案中,为什么我们需要在bysort语句中包含(rnd)。我们可以不谈吗?可以;在第二个问题的解决方案中,我们为什么需要在bysort语句中包含(rnd)呢。我们可以不谈吗?可以;这将是另一种方法。