全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
5025 6
2010-05-07
在下想合成一类如身份证号的数值,碰到如下问题:如下图,gen no=x1*10000+x2+x1(A图),B图是excel计算出的相同公式计算出的p_no(我想达到的目的),我想这是计算精确度导致的,不知有什么解决办法?
我在DATA  editor 中输入 123456789.089,显示的结果是123456792.0000,也没有办法理解的。

另:我输入身份证号:413902197604037139,显示的却是413902184384561150,不知何故。
因此,请问老师们,身份证号这类数据用什么类型的来表示比较合理?数值型还是字符?先谢谢了。图显示不出来,上传到附件中
计算对比.PNG
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-5-7 21:40:52
jzhyue 发表于 2010-5-7 20:41 身份证号这类数据用什么类型的来表示比较合理?数值型还是字符?
第二代身份证号末尾可能有x,这样还是设成字符型吧。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-5-7 22:01:10
只能存成字符型。
help double,你将看到“If you are storing identification numbers, the rounding could matter.  If the identification numbers are integers and take 9 digits or less, store them as longs; otherwise, store them as doubles.  doubles have 16 digits of accuracy.”
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-5-7 22:22:28
原来也是采用字符的,后来感觉不便才决定改变数据结构的,我的数据类似身份证号码,结构为No=年月+四位代码+追加码(由于追加码不确定是两位还是一位,选用小数表示,即.xx或.x表示)如200912 5678 .6和2010036578.19
但这类数值在stata中却不能如实显示的,还请版主释疑。谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-5-7 22:37:20
voodoo 发表于 2010-5-7 22:01
只能存成字符型。
help double,你将看到“If you are storing identification numbers, the rounding could matter.  If the identification numbers are integers and take 9 digits or less, store them as longs; otherwise, store them as doubles.  doubles have 16 digits of accuracy.”
由此看来如果用数字表示id,只能用少于9位的integer,更大的是无法用数字表示啦。
通过阅读  help double 。感觉标识码最好还是不要用数值表示的好。用字符表达是个好选择。
谢谢voodoo!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-5-8 07:34:41
jzhyue 发表于 2010-5-7 22:37 由此看来如果用数字表示id,只能用少于9位的integer,更大的是无法用数字表示啦。
通过阅读  help double 。感觉标识码最好还是不要用数值表示的好。用字符表达是个好选择。
个人以为,这里的关键还是号码末尾可能存在"x"。

如果ID号都是纯数字,完全可以把ID分成两个数值型变量,以两个变量来标识一个个体。

(当然,也可以用一个数值型变量与一个字符型变量来标识一个个体)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群