我不明白为什么如果排除 TRIM 函数或将 TRIM 函数移到 || 之外,星号不会放在 92 和 110 之后。功能。
DATA EXAMPLE8;
INPUT SBP DBP @@;
LENGTH SBP_CHK DBP_CHK $ 4;
SBP_CHK = PUT(SBP,3.);
DBP_CHK = PUT(DBP,3.);
LDBP_CHK = LENGTHC(DBP_CHK);
IF SBP GT 160 THEN SBP_CHK = SUBSTR(SBP_CHK,1,3) || '*';
IF DBP GT 90 THEN DBP_CHK = TRIM(DBP_CHK) || '*';
put DBP_CHK $quote.;
DATALINES;
120 80 180 92 200 110
;
PROC PRINT DATA=EXAMPLE8 NOOBS;
TITLE "Listing of Example 8";
RUN;
If I do DBP_CHK = TRIM(DBP_CHK); before the IF-THEN statement, and then just have DBP_CHK = DBP_CHK|| '*', it won't work out.
在 SAS DATA 步骤中,字符变量的值用空格填充到变量的长度。
假设您有代码:
LENGTH DBP_CHK $ 4;
DBP_CHK = '1' ;
DBP_CHK = DBP_CHK || '*';
串联结果为 $5 (
1
*
),它被强制放入 $4 容器 (DBP_CHK) 中,因此结果会被截断,你会摸不着头脑。