Random 标准状态()
我想为每个观测值生成一个固定的随机变量Random 标准状态(),random,stata,Random,Stata,我想为每个观测值生成一个固定的随机变量~N(0,10),以便将来计算 gen X=rnormal (0,10) list X Blank 如何查看生成的X的值 发出这些命令时,您可能正在使用一个空数据集。在这种情况下,您首先需要告诉Stata您的数据集包含多少个观测值。为此,您需要使用set obs命令,例如: . set seed 12345 . set obs 10 obs was 0, now 10 . gen x = rnormal(0,10) . list, clean
~N(0,10)
,以便将来计算
gen X=rnormal (0,10)
list X
Blank
如何查看生成的
X
的值 发出这些命令时,您可能正在使用一个空数据集。在这种情况下,您首先需要告诉Stata您的数据集包含多少个观测值。为此,您需要使用set obs
命令,例如:
. set seed 12345
. set obs 10
obs was 0, now 10
. gen x = rnormal(0,10)
. list, clean
x
1. -9.580833
2. -2.907274
3. 8.45202
4. 8.617108
5. -12.19151
6. 9.457337
7. 1.722469
8. -13.29949
9. -11.5291
10. 25.1646
想想如果不使用设置obs
会发生什么。在这种情况下,Stata会看到gen x=r正态(0,10),然后想“好的,我需要从正态分布创建随机抽取,但是有多少?”。如果您打开了一个数据集,那么它会回答“数据集中有多少个观测值”。如果没有打开数据集,那么答案仍然是“数据集中有多少个观测值”,但恰好是0
编辑: 如果你只想要一个数字,最好使用标量而不是变量。在Stata中,标量表示数据集中的单个数字,变量表示数据集中的单个列。对于标量,最好使用临时名称,因为它们与变量共享同一名称空间,但在省略时变量优先,这可能导致意外行为。所以你可以这样做:
. tempname a
. scalar `a' = rnormal(0,10)
. di `a'
10.737423
谢谢如果我需要一个常数/固定的X来做进一步的计算,会怎么样?例如,根据该常数X生成一个新数字,例如y=r正常(X,5)??我不想要这么多的X……最后一个问题似乎需要标量。但它似乎也很困惑。为什么要创建一个随机数用于以后的计算?只要在需要的时候创建一个。谢谢Buis和Cox,我昨天刚刚使用Stata进行编程。我从谷歌上读到了可能的教程材料,但那是我第一次遇到“标量”!任何仅用于编程的推荐材料(不用于回归/统计分析)?Stata随附的《用户指南》第18章。事实上,整个用户指南都是好东西。另请参见:除了Maarten的好建议之外:
search scalar
是一个可以键入内容的示例,即search
后跟一个关键字。一般来说,在谷歌搜索或向任何论坛或列表发送问题之前,请查看Stata自己的在线文档。