2017-05-24 142 views
2

我需要計算SPSS數值變量中的位數,並將其分配給不同的變量。SPSS:如何計算變量中的位數

我試着將它轉換成一個字符串,並用char.length()來計算字符串的長度,但是這會返回變量的定義長度,而不是每行中實際字符串的長度。

任何想法如何做到這一點?

回答

2

canculating您的字符串變量的長度時,使用ltrimrtrim(取決於你如何計算您的字符串 - 只是要確定,你可以同時使用),以擺脫空間,只計算位數:

compute Ndigits=char.length(ltrim(rtrim(YourString))). 

你也可以廢除的文本變量乾脆只使用此功能:

compute Ndigits=trunc(lg10(YourNumber))+1. 
+0

謝謝@ eli-k!這完美的作品! – BoTz

1

注意,長度將取決於數量是如何轉換爲字符串,即慈數量轉換中指定的mals。此外,小數點字符將對長度起作用。另外,如果你使用Unicode模式,這已經默認好幾年了,你不需要使用char.rtrim。字符串會自動在該模式下運行。

+0

是的,我想過在添加小數和改變格式之前改變了類型,我確實在Unicode模式下,但我仍然通過'char.length()'得到整個可變寬度。 – BoTz

+0

根據文檔,「CHAR.LENGTH(」strexpr)以字符形式返回字符串的長度,並刪除任何尾隨空格「。這是我在一個簡單的測試中看到的行爲,我不知道爲什麼看到不同的行爲,但也許你有非打印但非空白的尾隨字符,你可以將格式改爲AHEX以查看是否是這種情況。 – JKP