在我的变量中插入零

时间:2018-06-13 16:02:07

标签: stata

我有follow-up个问题:

如何在数字变量的第二个数字后插入零?

示例数据:

* Example generated by -dataex-. To install: ssc install dataex
clear
input float id
209
249
321
391
393
450
485
503
523
567
598
679
697
798
958
965
end

1 个答案:

答案 0 :(得分:1)

这是一个简单的例子,因为所有观察中的位数都相同。

一种方法是:

generate new_id = substr(string(id), 1, 2) + "0" + substr(string(id), 3, 3)
destring new_id, replace

list

     +--------------+
     |  id   new_id |
     |--------------|
  1. | 209     2009 |
  2. | 249     2409 |
  3. | 321     3201 |
  4. | 391     3901 |
  5. | 393     3903 |
     |--------------|
  6. | 450     4500 |
  7. | 485     4805 |
  8. | 503     5003 |
  9. | 523     5203 |
 10. | 567     5607 |
     |--------------|
 11. | 598     5908 |
 12. | 679     6709 |
 13. | 697     6907 |
 14. | 798     7908 |
 15. | 958     9508 |
     |--------------|
 16. | 965     9605 |
     +--------------+

基本上,您创建一个包含三个部分的新字符串变量:

  • 前两位数字
  • 第三位数字

然后使用destring命令将new_id转换为数字。

输入help substr()help destring了解详情。

修改

另一种方法(在一行中)也是使用real()函数:

generate new_id = real(substr(string(id), 1, 2) + "0" + substr(string(id), 3, 3))