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 英尺,但我无法真正弄清楚。

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

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

Shutouts=5 if Shutouts > 5.07 

Shutouts=5 if Shutouts == float(5.07) 

最新更新