请选择 进入手机版 | 继续访问电脑版
楼主: lbh134679
2400 2

[数据管理求助] 如何在去掉科学计数法的基础上取变量的前若干位? [推广有奖]

  • 0关注
  • 4粉丝

硕士生

81%

还不是VIP/贵宾

-

威望
0
论坛币
2120 个
通用积分
28.2941
学术水平
2 点
热心指数
2 点
信用等级
0 点
经验
1994 点
帖子
103
精华
0
在线时间
111 小时
注册时间
2013-4-6
最后登录
2023-3-15

lbh134679 学生认证  发表于 2016-3-18 17:53:29 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
举例:假设a变量某个数据为140421103216,在stata里是科学计数法形式,我用format a %20.0f去掉了科学计数法,接下来我想生成b为a的前4位,我用gen b=substr(string(a),1,4)命令后,结果变成了1.40,也就是说系统仍然是在科学计数法的基础上处理的。现在我想让b=1404,该如何解决?(补充一点,不能使用b=int(a/100000000),因为a里面还有大量不是12位的数据)
二维码

扫码加我 拉你入群

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

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

关键词:科学计数法 计数法 string SUBSTR format 如何

夏目贵志 发表于 2016-3-22 12:22:42 |显示全部楼层 |坛友微信交流群
不要简单的用string(),用这个转换就好了
  1.     strofreal(n,s)
  2.        Description:  n converted to a string using the specified display format

  3.                      Also see real().

  4.                      strofreal(4,"%9.2f") = "4.00"
  5.                      strofreal(123456789,"%11.0g") = "123456789"
  6.                      strofreal(123456789,"%13.0gc") = "123,456,789"
  7.                      strofreal(0,"%td") = "01jan1960"
  8.                      strofreal(225,"%tq") = "2016q2"
  9.                      strofreal(225,"not a format") = ""
  10.        Domain n:     -8e+307 to 8e+307 or missing
  11.        Domain s:     strings containing %fmt numeric display format
  12.        Range:        strings
复制代码

使用道具

lbh134679 学生认证  发表于 2016-3-22 13:21:56 |显示全部楼层 |坛友微信交流群
夏目贵志 发表于 2016-3-22 12:22
不要简单的用string(),用这个转换就好了
多谢,我也想了个办法,就是把数字都化成6位,即12位的除以1000000,11位的除以100000,以此类推,再在这些6位数的基础上使用int(a/100)就出来了。

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-16 18:17