行标签被截断
Row label is being truncated
我编写了以下查询以从 SAS table 中提取不同军事状态的列表。
proc sql;
create table mil_stat as
select distinct MILITARY_STAT_sERSS format $MILSTAT. as MILITARY_STATUS,
count(*) as TOTAL
from FPE
group by MILITARY_STAT_sERSS;
quit;
我需要添加一个显示总计数的摘要行。我试图在 proc sql 语句中这样做,但不知道该怎么做。因此,我编写了以下 proc 报告语句以在报告中提供所需的行。
PROC REPORT DATA=work.mil_stat;
column MILITARY_STATUS TOTAL;
where MILITARY_STATUS ne '5';
define MILITARY_STATUS / group;
rbreak after / summarize style=[font_weight=bold];
compute MILITARY_STATUS;
if MILITARY_STATUS ne . then c_MILITARY_STATUS=MILITARY_STATUS;
else c_MILITARY_STATUS=' ';
if _break_ = '_RBREAK_' then MILITARY_STATUS = "Grand Total";
endcomp;
run;
显示总计行,但 'Grand Total' 被截断为单个字符。
任何能够显示 'Grand Total' 字符串的帮助将不胜感激。
看起来 MILITARY_STAT_sERSS 只有一个字节长。而且,您与该变量一起使用的格式 $MILSTAT. 没有 'G'.
的任何解码
尝试使 MILITARY_STATUS 足够长以存储“总计”。
select MILITARY_STAT_sERSS as MILITARY_STATUS length=11 format=$MILSTAT.
...
另一种解决方案是为总计分配一个值('G' 可以,或 'T',或任何适合您的数据的值),然后在格式中使用它。这将是我的首选解决方案,因为它避免了未格式化的值,并且使用较少 space,但确实需要您能够调整格式(或者您可以使用传递格式,如果没有)。
proc format;
value $sex
'F' = 'Female'
'M' = 'Male'
'T' = 'Grand Total';
quit;
proc report data=sashelp.class;
columns sex height;
format sex $sex.;
define sex/group missing;
define height/analysis mean;
rbreak after/summarize;
compute sex;
if _break_='_RBREAK_' then sex='Total';
endcomp;
run;
我编写了以下查询以从 SAS table 中提取不同军事状态的列表。
proc sql;
create table mil_stat as
select distinct MILITARY_STAT_sERSS format $MILSTAT. as MILITARY_STATUS,
count(*) as TOTAL
from FPE
group by MILITARY_STAT_sERSS;
quit;
我需要添加一个显示总计数的摘要行。我试图在 proc sql 语句中这样做,但不知道该怎么做。因此,我编写了以下 proc 报告语句以在报告中提供所需的行。
PROC REPORT DATA=work.mil_stat;
column MILITARY_STATUS TOTAL;
where MILITARY_STATUS ne '5';
define MILITARY_STATUS / group;
rbreak after / summarize style=[font_weight=bold];
compute MILITARY_STATUS;
if MILITARY_STATUS ne . then c_MILITARY_STATUS=MILITARY_STATUS;
else c_MILITARY_STATUS=' ';
if _break_ = '_RBREAK_' then MILITARY_STATUS = "Grand Total";
endcomp;
run;
显示总计行,但 'Grand Total' 被截断为单个字符。
任何能够显示 'Grand Total' 字符串的帮助将不胜感激。
看起来 MILITARY_STAT_sERSS 只有一个字节长。而且,您与该变量一起使用的格式 $MILSTAT. 没有 'G'.
的任何解码尝试使 MILITARY_STATUS 足够长以存储“总计”。
select MILITARY_STAT_sERSS as MILITARY_STATUS length=11 format=$MILSTAT.
...
另一种解决方案是为总计分配一个值('G' 可以,或 'T',或任何适合您的数据的值),然后在格式中使用它。这将是我的首选解决方案,因为它避免了未格式化的值,并且使用较少 space,但确实需要您能够调整格式(或者您可以使用传递格式,如果没有)。
proc format;
value $sex
'F' = 'Female'
'M' = 'Male'
'T' = 'Grand Total';
quit;
proc report data=sashelp.class;
columns sex height;
format sex $sex.;
define sex/group missing;
define height/analysis mean;
rbreak after/summarize;
compute sex;
if _break_='_RBREAK_' then sex='Total';
endcomp;
run;