字串表示式中遺漏值

  • 如果函數 LPADRPAD 的數值引數 (可以是表示式) 無效或遺漏,則結果會是空字串。 如果填補或修整是唯一的作業,則字串會以空白填補至其整個長度。 如果作業是巢狀作業,則空字串會傳遞至下一個巢狀層次。
  • 如果 SUBSTR 的數值引數無效或遺漏,則結果會是空字串。 如果 SUBSTR 是唯一作業,則字串為空白。 如果作業是巢狀作業,則空字串會傳遞至下一個巢狀層次。
  • 如果 INDEXRINDEX 的數值引數無效或遺漏,則結果為系統遺漏。

統計和圖表程序以及遺漏值函數會將字串使用者遺漏值視為遺漏。 在其他轉換表示式中,會將它們視為有效。

DATA LIST LIST /stringvar (a1) numvar(f5.2).
BEGIN DATA
"a" 1
"b" 2
"c" 99
END DATA.
MISSING VALUES stringvar ('c') numvar (99).
COMPUTE newnum1=numvar.
STRING newstring (a1).
COMPUTE newstring=stringvar.
DO IF numvar <> 1.
  COMPUTE num_eval=1.
END IF.
DO IF stringvar <> "a".
  COMPUTE string_eval=1.
END IF.
COMPUTE num_missing=missing(numvar).
COMPUTE string_missing=missing(stringvar).
LIST.

stringvar numvar  newnum1 newstring num_eval string_eval num_missing string_missing 
 
a           1.00     1.00 a              .          .           .00          .00 
b           2.00     2.00 b             1.00       1.00         .00          .00 
c          99.00      .   c              .         1.00        1.00         1.00
  • stringvar 的 "c" 值宣告為使用者遺漏。
  • stringvar 的所有三個值都視為有效的 in COMPUTE newstring=stringvar
  • DO IF stringvar <> "a" 會針對 "c" 的值評估為 true ,而不是遺漏。 這會針對變數 string_eval 傳回值 1 ,而不是系統遺漏值。
  • MISSING 函數將 "c" 辨識為遺漏。 這會針對變數 string_missing 傳回值 1。