0

我有一个大列,对应于变量 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

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

4

1 回答 1

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是从您的示例中看起来足够大的格式,因此您的数字不会被破坏。听起来好像您的数据中没有小数点。

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

于 2013-03-02T14:09:09.233 回答