管理Stata中的数字

时间:2013-03-02 07:25:20

标签: stata

我有一个大的列,对应于变量x,如下所示:

198755
-235435436
4353455
-57863489
-2342345
45565768
9865385
-6534

我想用以下内容替换此列:

1.98755
-2.35435436
4.353455
-5.7863489
-2.342345
4.5565768
9.865385
-6.534

也就是说,我有各种长度和符号的数字,我想在第一个数字之后放一个点分隔符。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

最好结合字符串和数字操作

. gen mystr = string(mynum, "%16.0f")
. gen double newnum = real(substr(mystr,1,1) + "." + substr(mystr,2,.)) if mynum >= 0
. replace newnum = -real(substr(mystr,2,1) + "." + substr(mystr,3,.)) if mynum < 0

此处%16.0f从您的示例中看起来是一个足够大的格式,以便您的数字不会被破坏。听起来好像你的数据中没有小数点。

所以这个想法只是在第一个数字字符后插入一个小数点,这是第一个字符是减号时的第二个字符。