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