概觀 (AUTORECODE 指令)
AUTORECODE 會將字串及數值變數的值重新編碼為連續整數,並將重新編碼的值放入稱為 目標變數的新變數中。 原始變數的數值標籤或數值會用作目標變數的數值標籤。 AUTORECODE 對於從 ONEWAY 和 DISCRIMINANT等程序的字串變數建立數值自 (分組) 變數非常有用。 AUTORECODE 也可以將因素變數的值重新編碼為連續整數,這可能是部分程序所需要的,並且會減少部分統計程序所需要的工作區數量。
基本規格
基本規格是 VARIABLES 和 INTO。 VARIABLES 指定要重新編碼的變數。 INTO 為儲存新值的目標變數提供名稱。 VARIABLES 和 INTO 必須命名或暗示相同數目的變數。
次指令順序
- 必須先指定
VARIABLES。 INTO必須緊接在VARIABLES之後。- 所有其他次指令都可以依任何順序指定。
指令語法的規則
- 變數無法重新編碼為本身。 更一般地說,目標變數名稱不能與工作檔案中已存在的任何變數名稱重複。
- 如果指定
GROUP或APPLY TEMPLATE次指令,則VARIABLES次指令上的所有變數都必須是相同類型 (數值或字串)。 - 如果指定
APPLY TEMPLATE,則VARIABLES次指令上的所有變數必須與範本中定義的類型 (數值或字串) 相同。 APPLY TEMPLATE及SAVE TEMPLATE次指令上的檔案規格遵循檔案規格的一般慣例。 建議以引號括住檔案規格。
作業
- 每一個要重新編碼的變數值都會先排序,然後再指派數值。 依預設,會以遞增順序指派值: 1 指派給原始變數的最低非遺漏值; 2 指派給原始變數的第二最低非遺漏值; 依此類推。
- 原始變數的值保持不變。
- 遺漏值會重新編碼成高於任何非遺漏值的值,並保留其順序。 例如,如果原始變數有 10 個非遺漏值,則第一個遺漏值會重新編碼為 11 ,並保留其使用者遺漏狀態。 系統遺漏值仍為系統遺漏值。 (如需使用者遺漏值的其他規則,請參閱
GROUP、APPLY TEMPLATE和SAVE TEMPLATE次指令。) AUTORECODE不會對工作檔案中的觀察值進行排序。 因此,指派給目標變數的連續數字可能不符合檔案中的順序。- 為目標變數指派與原始來源變數相同的變數標籤。 若要變更變數標籤,請在
AUTORECODE之後使用VARIABLE LABELS指令。 - 系統會自動為目標變數的每個值產生值標籤。 如果原始值具有標籤,則該標籤用於對應的新值。 如果原始值沒有標籤,則會使用舊值本身作為新值的值標籤。 舊值的已定義列印格式會用來建立新值標籤。
AUTORECODE會忽略SPLIT FILE規格。 不過,任何SELECT IF規格都適用於AUTORECODE。