目标:在数据集中的特定位置后添加一个或多个空行
这是我迄今所做的工作:
data test_data;
set sashelp.class;
output;
/* Add a blank line after row 5*/
if _n_ = 5 then do;
call missing(of _all_);
output;
end;
/* Add 4 blank rows after row 7*/
if _n_ = 7 then do;
/* inserts a blank row after row 8 (7 original rows + 1 blank row) */
call missing(of _all_);
/*repeats the newly created blank row: inserts 3 blank rows*/
do i = 1 to 3;
output;
end;
end;
run;
我还在学习如何使用SAS,但我感觉"就像那里有一个更好的方法来获得相同的结果,主要是不必使用for循环来插入多个空行。多次这样做,我忘记了 n 应该是哪些值。我在想:
答案 0 :(得分:0)
您是否只想在每组观察结果后为报告添加空白? 例如,让我们使用组变量创建一个虚拟数据集。
data test_data ;
set sashelp.class ;
if _n_ <= 5 then group=1;
else if _n_ <=7 then group=2 ;
else group=3 ;
run;
现在我们可以制作一个报告,在每个组之后添加两个空行。
proc report data=test_data ;
column group name age ;
define group / group noprint ;
define name / display ;
define age / display;
compute after group ;
line @1 ' ';
line @1 ' ';
endcomp;
run;
或者您的报告数据是否具有所有可能的值并且您希望输出具有所有可能的值?
所以我们想要一份报告,根据年龄计算我们班上有多少孩子,我们需要报告10到18岁。但我们班上没有10岁的孩子。制作一个虚拟表并与之合并。
proc freq data=sashelp.class ;
tables age / noprint out=counts;
run;
proc print data=counts;
run;
data shell;
do age=10 to 18;
retain count 0 percent 0;
output;
end;
run;
data want ;
merge shell counts ;
by age;
run;
proc print data=want ;
run;