2016-08-24 68 views
1

使用包含混合數據的SPSS電子表格。一列按行包含不同的數字條目。我寫了一個簡單的宏,具有以下行爲。如何轉換檢查號碼以檢查信件和號碼的SPSS宏?

  1. 檢查列的給定數字條目的每一行。
  2. 然後創建一個新列,並且如果輸入數字是行中它被分配一個1。如果不是它被分配0

的代碼如下:

DEFINE INCHECK (!POSITIONAL !TOKENS(1) 
/!POSITIONAL !CMDEND) 

NUMERIC !1. 
COUNT !1=IN1 TO IN15 (!2). 
IF !1 GT 0 
!1=1. 
!ENDDEFINE 

問題如下。我現在有一個新的數據集,其中有一個額外的列,例如「E1567,G4345等」。我想調整宏,使其能夠與這種不同類型的條目具有相同的行爲。我雖然關於轉換條目,但我不確定如何在SPSS中完成此項。有什麼想法嗎?

+0

提到這個問題之前,我可以提出一個普遍改善到宏觀。這可以取代宏內容:'計算!1 =任何(!2,IN1到IN15)。「 –

回答

0

從你的例子中,我明白你的新文本變量是由一個字母,然後是幾個數字。如果這是在所有情況下是一致的(如果不是,請舉些例子),你可以在去之前使用相同的宏中使用這種簡單的換算:

compute YourTextVar=char.substr(YourTextVar,2,20). 
alter type YourTextVar(f20). 
+0

嘿Eli,我對沒有更具體的道歉表示歉意。這段代碼的行爲似乎是這樣的,就像你推斷出一個字母后跟一個數字一樣,變量從一個字符串轉換爲一個數字。我想要的是INCHECK將原來的字符串識別出來,而不是將其轉換爲數字。那有意義嗎? – George

+0

我想我真的不明白這個問題--IN1到IN15列之一是現在的文本,你要查找的值有時可能是一個數字,有時是一個字符串? 也 - 你需要宏來調整新的文件與意想不到的數字和文本變量的名稱,只是這個新的特定數據集? –