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自己的在线文档。