2016-06-14 56 views
2

Stata不會爲replace創造價值,正如我所指揮的那樣。發生什麼事? 我有這個變量Shutouts,這是一個浮點變量(%9.0g)。Stata不會取代變量值

一個觀察值= 5.08;那是錯誤的,應該是5. 我輸入:replace Shutout= 5 if Shutout==5.08。 而且,令人驚訝的對我來說,塔塔迴應:

replace Shutouts=5 if Shutouts==5.08 
(0 real changes made) 

我對具有相同特徵的變量有類似的問題,名爲Save_perc;一個值是9.2,但應該是.92。而且,這一次,我也收到了Stata的回覆:

replace Save_perc=.92 if Save_perc==9.2 
(0 real changes made) 

爲什麼「0真正的變化」?

這似乎是一個非常平庸的問題,但我一直在努力爲30',我真的不知道它。

+0

歡迎StackOverflow上。請查看這些關於如何生成[最小,完整和可驗證示例]的提示(http://stackoverflow.com/help/mcve)。也許下面的提示[問一個好問題](http://stackoverflow.com/help/how-to-ask)也值得一讀。例如,您不在問題中包含錯誤消息。請這樣做。 – lmo

+0

謝謝,我忘記輸入一些相關信息。 – Fuca26

回答

3

它與如何將浮點數存儲到內存中有關。比較兩種不同的數字格式時,不應使用==,因爲某些內部存儲近似可能會導致比較失敗。

在你的情況,你應該只使用

Shutouts=5 if Shutouts > 5.07 

Shutouts=5 if Shutouts == float(5.07) 
+1

太棒了!它非常完美!我認爲這是與數據格式有關的一些問題,但我無法指出問題的癥結所在。再一次非常感謝你! (抱歉,由於StackExchange平臺本章的低分,我還不能投票給你) – Fuca26

+3

這與Stata的格式無關,即顯示格式。完全與精確度有關。 '搜索精度'用於文檔。 –

+0

嘿尼克是的我的意思是精度 –