我有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
答案 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))