1

這是一個微不足道的問題,我只是想知道這裏發生了什麼。Stata中的數據精度

以下是我的樣本數據,我想找到該行最大的stata

x1   x2    x2 
70001102 70001102 70001102 
70001102 70001102 70001102 

現在,我用下面的代碼找到row max:

egen maxi rmax(x1 x2 x3) 

然而,在數據表我發現第一行和第二行的rmax是70001104,這顯然是不正確的。

回答

1

嘗試egen double maxi = rmax(x1 x2 x3)egen double maxi = rowmax(x1 x2 x3)。在這種情況下,還有很長的一段時間。

這裏是各種存儲類型的限制:

 type     minimum     maximum 
    ------------------------------------------------------ 
    byte      -127      100 
    int     -32,767     32,740 
    long   -2,147,483,647   2,147,483,620 
    ------------------------------------------------------ 
    float    -16,777,216    16,777,216 
    double -9,007,199,254,740,992 9,007,199,254,740,992 

您可以瞭解更多有關精密on the Stata blog

此外,在數據中的第二X2應該是X3在那裏。

+0

感謝@Dimitriy提供的解決方案。 – Metrics 2013-04-04 22:43:38

+0

'rmax()'顯然仍然有效,但自從Stata 9以來'rowmax()'已被記錄爲'egen'函數。 – 2013-04-04 23:12:58

+0

Nick的正確:rmax只是rowmax的包裝。我會修改我的答案。 – 2013-04-05 00:21:26