我无法弄清楚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
答案 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>中的参考文献