楼主: jmjun85
995 7

[数据管理求助] 明明有相同数值,STATA无法识别他们相等,怎么回事? [推广有奖]

  • 2关注
  • 5粉丝

svip3

已卖:21份资源

副教授

72%

(VIP/贵宾)七级

13%

威望
0
论坛币
69718 个
通用积分
299.6298
学术水平
4 点
热心指数
15 点
信用等级
1 点
经验
490 点
帖子
320
精华
0
在线时间
1479 小时
注册时间
2006-11-19
最后登录
2026-2-7

楼主
jmjun85 发表于 2024-7-30 20:07:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

     +---------------------+
     | distan~m     min_km |
     |---------------------|
  1. |  22.4204   1.537362 |
  2. | 22.23315   1.537362 |
  3. | 23.82253   1.537362 |
  4. | 4.099761   1.537362 |
  5. |  22.4204   1.537362 |
     |---------------------|
  6. |   32.762   1.537362 |
  7. |  12.1344   1.537362 |
  8. | 14.15286   1.537362 |
  9. | 31.93295   1.537362 |
10. | 14.54033   1.537362 |
     |---------------------|
11. | 2.597223   1.537362 |
12. | 19.68286   1.537362 |
13. | 20.46668   1.537362 |
14. | 39.73353   1.537362 |
15. |  12.4202   1.537362 |
     |---------------------|
16. | 1.537362   1.537362 |
     +---------------------+

bysort code year:egen min_km=min(distance_km)

数据和命令如上,后一列是前一列里找出的最小值。但是我只想保留这个最小值,软件怎么都识别不了第16个观测值的两个变量值是相等的。 distance_km是通过geodist算的距离。

头一次遇到这种情况,还请大家指点一下。




二维码

扫码加我 拉你入群

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

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

关键词:Stata tata Distance stance bysort

沙发
jmjun85 发表于 2024-7-30 20:12:04
data.dta (1.98 KB)


这是数据



藤椅
917968079 发表于 2024-7-31 09:36:12
keep if float(distance_km)==float(min_km) 这两个变量都是浮点数,计算机里没办法精确存储,在比较大小的时候要用float()函数
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
jmjun85 + 3 + 3 + 3 精彩帖子

总评分: 论坛币 + 3  学术水平 + 3  热心指数 + 3   查看全部评分

板凳
317792209 在职认证  学生认证  发表于 2024-7-31 20:27:40
不要被表象所迷惑,你看着两个值相等,是因为只看到了表面。
  1. format %12.0g distance_km
  2. format %12.0g min_km
  3. list in 16
复制代码

把小数点改为12位,会有惊喜。
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
jmjun85 + 3 + 3 + 3 精彩帖子

总评分: 论坛币 + 3  学术水平 + 3  热心指数 + 3   查看全部评分

报纸
Killua609 发表于 2024-8-1 10:02:43
因为这是

地板
okwh 发表于 2024-8-1 10:42:36
比较时先四舍五入到指定的小点位数,   比如先乘以10000、然后取整、再比较

7
jmjun85 发表于 2024-8-1 13:21:59
317792209 发表于 2024-7-31 20:27
不要被表象所迷惑,你看着两个值相等,是因为只看到了表面。

把小数点改为12位,会有惊喜。
一个是9位,一个是10位,我总是在9和10之间改来改去,怎是不行,哈哈。咋就没想到12位

8
newfei188 发表于 2024-8-1 18:31:51

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-7 15:40