【发布时间】:2014-06-10 18:00:38
【问题描述】:
我正在学习 Stata,想知道如何生成随机整数(无需替换)。如果我总共有 10 行,我希望每一行都有一个从 1 到 10 的唯一整数分配给它。在 R 中,可以简单地做:
sample(1:10, 10)
但在 Stata 中似乎更难做到。从this Stata page,我看到了:
generate ui = floor((b-a+1)*runiform() + a)
如果我替换 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 是观察号。 group 是观察(行)所属的组。 mem 是组中的成员标识符。每个组有一个x 和一个y。
【问题讨论】:
-
您还可以阅读该 Stata 博客系列的 第 2 部分:blog.stata.com/2012/08/03/…