本例中 TRIM 函数如何工作?

问题描述 投票:0回答:1

我不明白为什么如果排除 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
1个回答
0
投票

在 SAS DATA 步骤中,字符变量的值用空格填充到变量的长度。

假设您有代码:

LENGTH DBP_CHK $ 4;
DBP_CHK = '1' ;
DBP_CHK = DBP_CHK || '*';

串联结果为 $5 (

1
 
 
 
*
),它被强制放入 $4 容器 (DBP_CHK) 中,因此结果会被截断,你会摸不着头脑。

© www.soinside.com 2019 - 2024. All rights reserved.