字串變數 (RECODE 指令)

  • 目標變數必須已存在。 若要建立新的字串變數,請先使用 STRING 指令宣告變數,然後在 RECODE上指定它。
  • 新字串值不能長於目標變數的定義寬度。
  • 如果新值短於目標變數的定義寬度,則值會以空白向右填補。
  • 容許多個目標變數。 目標變數必須全部都是相同的定義寬度; 來源變數可以有不同的寬度。
  • 如果來源變數和目標變數具有不同的寬度,則原始值寬度的準則是定義給來源變數的寬度; 重新編碼值寬度的準則是定義給目標變數的寬度。

搭配目標變數使用關鍵字 COPY

STRING STATE1 (A2).
RECODE STATE ('IO'='IA') (ELSE=COPY) INTO STATE1.
  • STRING 宣告變數 STATE1 ,以便將其用作 RECODE上的目標變數。
  • RECODE 指定 STATE 作為來源變數, STATE1 作為目標變數。 原始值 IO 會重新編碼為 IA。 關鍵字 ELSECOPY 會複製未變更的所有其他狀態碼。 因此,除了具有原始值 IO 的觀察值之外, STATESTATE1 是相同的。

將字串變數重新編碼為數值目標

RECODE SEX ('M'=1) ('F'=2) INTO NSEX.
  • RECODE 會將字串變數 SEX 重新編碼為數值變數 NSEX。 任何非 M 或 F 的值都會變成系統遺漏值。
  • 程式可以使用數值變數 NSEX 比使用字串變數 SEX更有效率地處理大量觀察值。