2013-03-02 69 views
0

管理的數字我有一個大列,對應變量x,看起來像這樣:在Stata

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

這是最好的字符串和數值操作

. 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是你的榜樣是什麼看起來是一個足夠大的格式,使您的數字不是錯位相結合。這聽起來好像您的數據中沒有小數點。

所以這個想法只是在第一個數字字符後面插入一個小數點,這是第一個字符是負號時的第二個字符。