如何使得数值型显示的和字符型一样呢?先上例子
clear input str3 id "001" "002" "003" "004" "005" "006" "007" "008" "009" "010" end
可以看出,id变量是字符型,如果我们将其转为数值型,一般的命令如下:
destring id, gen(numid)
查看一下
. list id numid +-------------+ | id numid | |-------------| 1. | 001 1 | 2. | 002 2 | 3. | 003 3 | 4. | 004 4 | 5. | 005 5 | |-------------| 6. | 006 6 | 7. | 007 7 | 8. | 008 8 | 9. | 009 9 | 10. | 010 10 | +-------------+
可以看出数值型变量前面的0不显示了。如何使得数值型(numid)显示的和字符型(id)一样呢?
其实这就是个显示问题,使用格式命令:
. format numid %03.0f
再查看一下:
. list id numid +-------------+ | id numid | |-------------| 1. | 001 001 | 2. | 002 002 | 3. | 003 003 | 4. | 004 004 | 5. | 005 005 | |-------------| 6. | 006 006 | 7. | 007 007 | 8. | 008 008 | 9. | 009 009 | 10. | 010 010 | +-------------+
还有一种方法,用标签显示(将字符型变量的值作为标签附到数值型变量上):
egen numid2 = group(id), label
查看一下这三个变量:
list id numid numid2 +----------------------+ | id numid numid2 | |----------------------| 1. | 001 001 001 | 2. | 002 002 002 | 3. | 003 003 003 | 4. | 004 004 004 | 5. | 005 005 005 | |----------------------| 6. | 006 006 006 | 7. | 007 007 007 | 8. | 008 008 008 | 9. | 009 009 009 | 10. | 010 010 010 | +----------------------+
一种修改显示格式,另一种是显示标签,问题解决。