APPLY TEMPLATE 次指令 (AUTORECODE 指令)

APPLY TEMPLATE 次指令可讓您將先前儲存的自動重新編碼範本套用至現行 AUTORECODE 指令中的變數,並將在變數中找到的任何其他值附加至架構結尾,保留儲存在已儲存架構中的原始自動重新編碼值與自動重新編碼值之間的關係。

  • APPLY TEMPLATE 後面接著等號 (=) 和加引號的檔案規格。
  • VARIABLES 次指令上的所有變數必須是相同的類型 (數值或字串) ,且該類型必須符合範本中定義的類型。
  • 範本不包含任何有關使用者遺漏值的資訊。 目標變數的使用者遺漏值是依據原始變數清單中的第一個變數,其清單含有已定義的使用者遺漏值。 除系統遺漏值外,所有其他原始變數的數值都會被視為有效。
  • 會先套用與範本對應的數值。 剩餘的所有數值會重新編碼為數值,其數值會高於範本中的最後一個數值;同時使用者遺漏值 (依據清單中的第一個變數,其中清單中含有已定義的使用者遺漏值) 會重新編碼為高於最後一個有效值的數值。
  • 如果在 VARIABLES 次指令上指定多個變數,則 APPLY TEMPLATE 會使用或不使用明確 GROUP 次指令產生分組重新編碼方法。

範例

DATA LIST FREE /var1 (a1).
BEGIN DATA
a b d
END DATA.
AUTORECODE VARIABLES=var1
  /INTO newvar1
  /SAVE TEMPLATE='/temp/var1_template.sat'.
DATA LIST FREE /var2 (a1).
BEGIN DATA
a b c
END DATA.
AUTORECODE VARIABLES=var2
  /INTO newvar2
  /APPLY TEMPLATE='/temp/var1_template.sat'.
  • 範本檔案 var1_template.sat 會分別將字串值 a、b 及 d 對映至數值 1、2 及 3。
  • 當範本套用至具有字串值 a、b 及 c 的變數 var2 時, newvar2 的自動重新編碼值分別為 1、2 及 4。 字串值 "c" 會自動重新編碼為 4 ,因為範本會將 3 對映至字串值 "d"。
  • 資料字典包含所有四個值的已定義值標籤 -- 範本中的三個值,以及從檔案中讀取的一個新值。
表 1. newvar2 的已定義值標籤
標籤
1 a
2 b
3 d
4 c