2013-04-26 2800 views
-1

我想爲未來計算的每個觀測值生成一個固定的隨機變量~N(0,10)Stata rnormal()

gen X=rnormal (0,10) 
list X 

Blank 

我怎樣才能看到X正在產生什麼值?

回答

2

當您發佈這些命令時,您可能正在使用空數據集。在這種情況下,您首先需要告訴Stata您的數據集包含多少觀測值。對於您需要使用set obs命令,所以是這樣的:當你不使用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 

思考。在那種情況下,Stata會看到gen x = rnormal(0,10),並且認爲「好的,我需要從正態分佈創建隨機抽獎,但有多少?」。如果你打開了一個數據集,那麼它會回答「儘可能多的數據集中的觀察值」。如果你沒有數據集開放,那麼答案仍然是「一樣多的數據集中的意見」,但恰好是0


編輯:

如果你只是想要一個數字,你最好使用標量而不是變量。在Stata中,標量是指單個數字,而變量是指數據集中的單個列。對於標量,最好使用臨時名稱,因爲它們與變量共享相同的名稱空間,但在涉及到abreviations時變量優先,這可能會導致意外的行爲。所以你可以做這樣的事情:

. tempname a 

. scalar `a' = rnormal(0,10) 

. di `a' 
10.737423 
+0

謝謝。 如果我需要一個常量/固定X來進一步計算,該怎麼辦?例如,基於該常數X生成新的數字,例如, y =正態(x,5)?? 我不想這麼多X ....... – Joey 2013-04-26 13:51:35

+0

@Joey我編輯了答案來處理這個問題 – 2013-04-26 14:10:09

+1

最後一個問題似乎要求標量。但它也似乎困惑。爲什麼要創建一個隨機數用於以後的計算?只需在需要時創建一個。 – 2013-04-26 14:10:36