楼主: jhl2010
81367 41

[数据管理求助] 如何取数值型数据的前两位?   [推广有奖]

11
一无所知的 发表于 2017-6-30 09:53:52
zabbyy 发表于 2017-1-1 11:56
取后几位怎么办呢
那就把1,2换成开始的那一位和结束的那一位,就能提取中间或者结尾的任意一段数字了啊。

12
zabbyy 发表于 2017-6-30 18:52:39
收到,谢谢指教

13
黃河泉 在职认证  发表于 2017-7-1 17:23:27
zabbyy 发表于 2017-6-30 18:52
收到,谢谢指教
试试取"前两位"与"后两位"
  1. clear
  2. input x
  3. 123
  4. 4567
  5. 89345
  6. end

  7. gen yf2 = real(substr(string(x),1,2))
  8. gen yb2 = real(substr(string(x),-2,.))
复制代码

14
黃河泉 在职认证  发表于 2017-7-1 17:24:24
  1. . list

  2.      +-------------------+
  3.      |     x   yf2   yb2 |
  4.      |-------------------|
  5.   1. |   123    12    23 |
  6.   2. |  4567    45    67 |
  7.   3. | 89345    89    45 |
  8.      +-------------------+
复制代码

15
zabbyy 发表于 2017-7-1 22:55:40
黃河泉 发表于 2017-7-1 17:23
试试取"前两位"与"后两位"
嗯嗯,谢谢老师指教

16
zabbyy 发表于 2017-7-3 16:08:04
黃河泉 发表于 2017-7-1 17:23
试试取"前两位"与"后两位"
如果是数值型的,老师可以试一下int函数


17
黃河泉 在职认证  发表于 2017-7-3 16:30:32
zabbyy 发表于 2017-7-3 16:08
如果是数值型的,老师可以试一下int函数
谢谢,但真的可以用吗? 如何用呢?

18
zabbyy 发表于 2017-7-3 16:33:39
是的,
比如 :县级代码6位数(code)110023  
取前两位的话就是int(code/10000)

19
黃河泉 在职认证  发表于 2017-7-3 16:39:04
zabbyy 发表于 2017-7-3 16:33
是的,
比如 :县级代码6位数(code)110023  
取前两位的话就是int(code/10000)
OK,了解!但以上面例子,x 的位数不一样,你的建议似乎就有点问题了!

20
高冷的吐槽星人 发表于 2018-3-10 14:34:03
取前四位用这个,结果出来是一位数呢

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-29 02:23