REPEAT FUNCTION 如何处理字符串中的尾随空格?

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

我不明白为什么 C2 中的第二个和第三个观察结果在复制的字符串和重复的字符串之间只有一个空格(显示为“XXX XXX”和“Y Y”),而“XXX”中有 5 个尾随空格'Y' 中有 7 个尾随空格?它与 LC2 中的结果冲突吗?

DATA EXAMPLE1;    
     INPUT GROUP @10 STRING $3.;    
     LEFT = 'X    ';    
     RIGHT = '    X';    
     C1 = SUBSTR(GROUP,1,2) ;     
     C2 = REPEAT(GROUP,1);       
     LGROUP = LENGTH(GROUP) ;    
     LSTRING = LENGTH(STRING) ;    
     LLEFT = LENGTH(LEFT);    
     LRIGHT = LENGTH(RIGHT);    
     LC1 = LENGTH(C1);    
     LC2 = LENGTH(C2); 
     DATALINES; 
     ABCDEFGH 123 
     XXX  4 
     Y 5 ;

这是输出: PROC PRINT OUTPUT

sas
1个回答
0
投票

您发布了 ODS 输出的 PHOTOGRPAH。你无法从其中任何一个中得知有关空间的任何信息。打开普通的旧列表输出并查看它。

所以假设你运行了这样的东西:

data example;
  LENGTH GROUP $8;
  INPUT GROUP @10 STRING $3.;
  LEFT = 'X    ';
  RIGHT = '    X';
  C1 = SUBSTR(GROUP,1,2) ;
  C2 = REPEAT(GROUP,1);
  LGROUP = LENGTH(GROUP) ;
  LSTRING = LENGTH(STRING) ;
  LLEFT = LENGTH(LEFT);
  LRIGHT = LENGTH(RIGHT);
  LC1 = LENGTH(C1);
  LC2 = LENGTH(C2);
DATALINES;
ABCDEFGH 123
XXX  4
Y 5
;

输出应如下所示:

Obs    GROUP       STRING    LEFT    RIGHT    C1    C2                  LGROUP    LSTRING    LLEFT    LRIGHT    LC1    LC2

 1     ABCDEFGH     123       X        X      AB    ABCDEFGHABCDEFGH       8         3         1         5       2      16
 2     XXX                    X        X      XX    XXX     XXX            3         1         1         5       2      11
 3     Y                      X        X      Y     Y       Y              1         1         1         5       1       9

但是 ODS 会破坏输出,使其看起来“漂亮”。

如果添加,您会在 SAS 日志中看到什么

put group $quote.;
© www.soinside.com 2019 - 2024. All rights reserved.