在Stata中创建变量的奇怪错误?

时间:2014-11-20 03:13:44

标签: stata

我无法弄清楚Stata可能会发生这种情况。数据是整数,没有缺失值。

gen aid=bid*10000+cid
gen temp=0
replace temp=1 if aid!=bid*10000+cid
sum temp

temp的平均值等于0.27,我可以看到很多地方变量aid未根据公式编码。这怎么可能?我试过在Stata 12和13中运行它并得到了相同的结果。在每种情况下,错误aid在个位数中偏离1或2。

这是一个可重复的例子:

set obs 1

gen wid=2107 
gen fid=2104 

gen mid=fid*10000+wid 
di mid

1 个答案:

答案 0 :(得分:2)

一个例子:

clear 
set more off

set obs 1

gen wid=2107 
gen fid=2104 

gen mid = fid*10000 + wid 
gen double mid2 = fid*10000 + wid 

display mid
display mid2

默认数据类型是 float ,“浮点数大约有7位精度”。

如果提高数据类型的精度,则会看到预期的数据。阅读我之前评论中提到的参考文献:help data types和。{/ p>中的参考文献