将PROC FREQ的输出合并在一起
我有一个PROC FREQ的输出,看起来像这样:

要把这两个值合并,我使用了以下代码:
myval = cats(N, " (", put(Percent, 5.1), "%)");
它得到如下结果:3(15%)
那么如果我想要如下的结果呢?
3 ( 15%)
这是为了报表格式的需要。换句话说,我需要在 "3" 和 "(" 之间添加一个空格,在15% 之前再留两个空格。
解决方案
使用CATS() 会去掉(删去)列表项的前导空格和尾随空格。如果你想保留空格,那么就使用能够保留空格的办法。
下面给出一些示例。
73 data have;
74 n=3;
75 percent = 15;
76 length str1-str5 $20 ;
77
78 str1 = cats(N, ' (', put(Percent, 5.1), '%)');
79 str2 = catx(' ',n,'(',put(percent,5.1),'%)');
80 str3 = catx(' ',n,cat('(',put(percent,5.1),'%)'));
81 str4 = catx(' ',n,cats('(',put(percent,5.1),'%)'));
82 str5 = cat(put(n,comma5.),' (',put(percent,5.1),'%)');
83 put (str1-str5) (= $quote. /);
84 run;
str1="3(15.0%)"
str2="3 ( 15.0 %)"
str3="3 ( 15.0%)"
str4="3 (15.0%)"
str5=" 3 ( 15.0%)"
请注意,按照5.1版的格式,数值15会显示为 15.0。
STR3看起来像你所请求的那样(但因为你没有使用固定宽度字体发布,所以很难判断)。
STR4在我看来更好。
如果你打算使用固定宽度字体打印STR5,那么会更好,因为这样同一列中的数值就会在列中保持对齐。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。