Stata不会取代变量值

时间:2016-06-14 14:52:07

标签: replace stata

Stata没有replace一个值,正如我指挥的那样。怎么了? 我有这个变量Shutouts,它是一个浮点变量(%9.0g)。

一个观察值= 5.08;这是一个错误,它应该是5。 我输入:replace Shutout= 5 if Shutout==5.08。 而且,令我惊讶的是,Stata回应道:

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',我无法弄明白。

1 个答案:

答案 0 :(得分:3)

它与浮点数如何存储到内存有关。在比较两种不同的数字格式时,不应使用==,因为某些内部存储近似会使比较失败。

在您的情况下,您应该使用

Shutouts=5 if Shutouts > 5.07 

  Shutouts=5 if Shutouts == float(5.07)