【问题标题】:Stata: Variable type (8-digit numbers)Stata:变量类型(8位数字)
【发布时间】:2013-03-28 01:45:09
【问题描述】:
input a
88888888
99999999
end
export excel a.xlsx, replace

然后,如果我打开 excel 文件,数字显示为 8.89e+07 和 1.00e+08。我怎样才能将这些恢复到原始数字。我必须在 Excel 中执行此操作吗?有什么方法可以阻止 Stata 将这些数字转换为“科学”格式?

【问题讨论】:

  • 只是问显而易见的问题,但你确定这不仅仅是 Excel 中的数字格式变化吗?
  • 我认为这是Stata的一个问题。 Stata中的99999999在Excel中导出为1.00E+08。

标签: excel type-conversion stata


【解决方案1】:

input 命令的作用是将这些数字读入float 类型的变量。但是float 中没有足够的位来准确地保存 99999999。这是有据可查的。

参见例如data types的帮助:

"floats 的准确度约为 7 位;数字的大小无关紧要。因此,1234567 可以完美地存储为 float,就像 1234567e+20 一样。但是,数字 123456789 会四舍五入为 123456792。一般情况下,这种四舍五入无关紧要。

如果您要存储标识号,则四舍五入可能很重要。如果 标识号为整数,不超过9位,存储为longs; 否则,将它们存储为doubles。 doubles 有 16 位精度。”

因此,您使用不适当的数据类型降低了数据质量。这就是问题所在,而不是export excel

【讨论】:

  • 谢谢你,尼克。我将这个问题修复如下: .recast double a .format %11.0g a .recode a (100000000=99999999)
  • 很高兴您解决了您的问题,但对于未来,请注意recast double 将永远不会恢复丢失的位。您需要从一开始就使用适当的数据类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
相关资源
最近更新 更多