字串表示式中遺漏值
- 如果函數
LPAD
和RPAD
的數值引數 (可以是表示式) 無效或遺漏,則結果會是空字串。 如果填補或修整是唯一的作業,則字串會以空白填補至其整個長度。 如果作業是巢狀作業,則空字串會傳遞至下一個巢狀層次。 - 如果
SUBSTR
的數值引數無效或遺漏,則結果會是空字串。 如果SUBSTR
是唯一作業,則字串為空白。 如果作業是巢狀作業,則空字串會傳遞至下一個巢狀層次。 - 如果
INDEX
或RINDEX
的數值引數無效或遺漏,則結果為系統遺漏。
統計和圖表程序以及遺漏值函數會將字串使用者遺漏值視為遺漏。 在其他轉換表示式中,會將它們視為有效。
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。