【问题标题】:Stata does not replace variable valueStata 不会替换变量值
【发布时间】:2016-06-14 14:52:06
【问题描述】:

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,但应该是 0.92。而且,这一次,我收到了来自 Stata 的回复:

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

为什么是“0 个真正的变化”?

这似乎是一个非常平庸的问题,但我已经研究了大约 30 分钟,但我无法真正弄清楚。

【问题讨论】:

标签: replace stata


【解决方案1】:

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

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

Shutouts=5 if Shutouts > 5.07 

  Shutouts=5 if Shutouts == float(5.07) 

【讨论】:

  • 太棒了!它工作得很好!我认为这是与数据格式有关的一些问题,但我无法确定问题所在。再一次非常感谢你! (抱歉,由于我在 StackExchange 平台的这一章中得分很低,所以我还不能投票给你)
  • 与Stata意义上的格式无关,即显示格式。这完全与精度有关。 search precision 用于文档。
  • 嘿,尼克,是的,我的意思是精确度
猜你喜欢
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-19
相关资源
最近更新 更多