我有一个大列,对应于变量 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
也就是说,我有各种长度和符号的数字,我想在第一个数字之后放置一个点分隔符。我怎样才能做到这一点?
我有一个大列,对应于变量 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
也就是说,我有各种长度和符号的数字,我想在第一个数字之后放置一个点分隔符。我怎样才能做到这一点?
最好将字符串和数字操作结合起来
. 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
是从您的示例中看起来足够大的格式,因此您的数字不会被破坏。听起来好像您的数据中没有小数点。
所以这个想法只是在第一个数字字符之后插入一个小数点,当第一个字符是减号时,这是第二个字符。