2017-08-22 26 views
1

我有超過250個變量和100例以上的文件。其中一些變量在小數點中有誤(20445.12應爲2.044512)。修改值編程SPSS

我希望通過編程修改這些數據,我發現通過SPSS提供一個Visual Basic編輯器(我告訴你下面的屏幕截圖)一個可行的辦法,但我有一個絕對的知識的缺乏。

  • 如何選擇此語言的一系列單元格?
  • 如何在存儲單元格後修改其數據?

enter image description here

--- EDITED新的數據---- 謝謝您的回覆快。

現在的問題的數字,這個數字有它的數量。例如,錯誤數據可能具有以下格式:

情況A)43998(5位數字)---> 4.3998爲正確的值。 案例B)4399(四位數)---> 4.3990是正確的值,但解析爲0.4399,因爲創建文件時刪除了0。

有什麼辦法,如:

IF(NUM < 10000)THEN = NUM​​ NUM/1000 ELSE NUM = NUM​​/10000

或者類似的東西IF(Number_of_digits(NUM))的話.. 。

謝謝。

回答

2

沒有必要爲VB腳本,走這條路:

打開語法窗口,粘貼以下代碼:

do repeat vr=var1 var2 var3 var4. 
compute vr=vr/10000. 
end repeat. 
save outfile="filepath\My corrected data.sav". 
exe. 

替換var1 var2 var3 var4你需要改變實際變量的名稱。對於文件中連續的變量,可以使用var1 to var4
vr=vr/10000替換爲您希望用於校正數據的任何數學計算。
用您的路徑和文件名替換"filepath\My corrected data.sav"

警告:此語法將改變您的檔案資料。除了將更正後的數據保存到新文件之外,還應確保創建原件的備份。

+0

感謝您的快速回復。你能幫我解決上面編輯的問題嗎? – Joseph

+0

反正我現在已經這個問題: '唯一 >公認的子命令:OUTFILE,KEEP,刪除,重命名,MAP,壓縮 >未壓縮的未選中的Y ENCODING.' – Joseph

+1

鑑於更新,你可能會做這樣的事情' COMPUTE V1 = V1 /(10 ** TRUNC(LG10(V1)))'假設所有的值都大於零,但是(所以不是零,也不是負值)。 –