全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2427 5
2009-05-29

有两个变量V和C,其存储类型都是double。

假设样本数为1,其中V=40.01,C=0.4001

然后我

replace v=v/100

count if v==c

可结果显示0。

如果V和C存储类型都是float,那结果就正确。

这是为什么呢?

 

331089.xls
大小:(37 Bytes)

 马上下载


[此贴子已经被作者于2009-5-30 0:00:03编辑过]

附件列表

331088.xls

大小:37 Bytes

 马上下载

问个数据类型的小问题

二维码

扫码加我 拉你入群

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

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

全部回复
2009-5-30 09:05:00
二维码

扫码加我 拉你入群

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

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

2009-5-30 15:49:00

谢谢了。

之前看过那个贴子,不过还是不太明白。

如果根据变量之间关系条件等经常要生成一些变量,最好怎么给变量设置数据类型呢?

(真汗,现在很怀疑之前不加思索地生成一些变量的可靠性)

在我的数据V和C中,我明明看到V=40.01,C=0.4001,而且两个都是double,
那么V/100应该等于C的。。。

然后我又根据这一相等条件生成了许多变量,唉。

二维码

扫码加我 拉你入群

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

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

2009-5-30 16:08:00

产生新变量没有问题。

. des

Contains data
  obs:             1                         
 vars:             2                         
 size:            20 (99.9% of memory free)
-------------------------------------------------------------------------------
              storage  display     value
variable name   type   format      label      variable label
-------------------------------------------------------------------------------
var1            double %9.0g                 
var2            double %9.0g                 
-------------------------------------------------------------------------------
Sorted by: 
     Note:  dataset has changed since last saved

. list

     +---------------+
     |  var1    var2 |
     |---------------|
  1. | 40.01   .4001 |
     +---------------+

. gen k= var1/100

. count if  var2== k
    1

. des

Contains data
  obs:             1                         
 vars:             3                         
 size:            24 (99.9% of memory free)
-------------------------------------------------------------------------------
              storage  display     value
variable name   type   format      label      variable label
-------------------------------------------------------------------------------
var1            double %9.0g                 
var2            double %9.0g                 
k               float  %9.0g                 
-------------------------------------------------------------------------------
Sorted by: 
     Note:  dataset has changed since last saved

. list

     +-----------------------+
     |  var1    var2       k |
     |-----------------------|
  1. | 40.01   .4001   .4001 |
     +-----------------------+

[此贴子已经被作者于2009-5-30 16:12:27编辑过]

二维码

扫码加我 拉你入群

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

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

2009-5-30 16:17:00

可为什么

replace v=v/100

count if v==c

就不行了呢?

二维码

扫码加我 拉你入群

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

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

2009-6-2 17:33:00
经测试没有问题,结果都是1:

clear
input code year v c
609 2002 40.01 0.4001
end
replace v=v/100
count if v==c
recast double v c
count if v==c


二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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