全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
29445 12
2019-09-24
复制代码
我想对483283的a进行分类,小于等于0.1且大于0.02的是一类,大于0.1的是一类,代码如下:
gen b=1
replace b=2 if a<=0.1 & a>0.02
list
但是运行完之后发现0.1不属于小于等于0.1,

想请教一下是我代码写错了吗?应该怎么写呢?
附件列表
1.png

原图尺寸 5.85 KB

1.png

二维码

扫码加我 拉你入群

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

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

全部回复
2019-9-24 16:53:48
浮点数并不是一个精确的数字,而是一个无限近似的数字,你在stata中看到的float 型的变量a 的其中一个观察值0.1只是一个显示的数字,比如x=0.1,用2进制表示是个无限循环的2进制数(0.0000100010001..........),用2进制无法精确表示0.1,所以你在判断的时候出现此种情况,代码并没有写错,建议你在设置变量a的类型的时候设置a为长整型long
二维码

扫码加我 拉你入群

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

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

2019-9-24 19:02:00
acs495628 发表于 2019-9-24 16:53
浮点数并不是一个精确的数字,而是一个无限近似的数字,你在stata中看到的float 型的变量a 的其中一个观察值 ...
感谢回复,我试了改成long之后a全变成0了,改成double之后结果和float的一样...
二维码

扫码加我 拉你入群

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

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

2019-9-24 19:52:00
复制代码
二维码

扫码加我 拉你入群

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

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

2019-9-24 19:52:56
double没有问题
二维码

扫码加我 拉你入群

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

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

2019-9-25 11:58:32
蓝色 发表于 2019-9-24 19:52
请教一下:我复制了你的代码运行后显示 cannot be read as a number ,请问一下你运行时没有这个问题吗?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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