【发布时间】:2016-04-12 22:12:38
【问题描述】:
除了 SUM,SAS 确实缺少行函数。我想在纵向数据集的波中计算某些扩展的缺失代码。
我可以使用数组来处理每个 wave 的硬编码 varlist,但是我没有运气为每个 wave 创建一个可以调用的宏。问题似乎是无法传入 varlist,尤其是在使用 first--last 表示法时。
data xxx;
input a b c d e f;
datalines;
1 2 3 4 5 6
.w .w .w .w .w .w
3 4 5 .w .w .w
;
run;
data yyy(drop=i); set xxx;
array wave1vars(*) a--c;
wave1count = 0;
do i = 1 to dim(wave1vars);
if wave1vars(i) = .w then wave1count = wave1count +1;
end;
array wave2vars(*) d--f;
wave2count = 0;
do i = 1 to dim(wave2vars);
if wave2vars(i) = .w then wave2count = wave2count +1;
end;
run;
【问题讨论】:
-
我不明白为什么不能将 varlist 作为宏参数 %mymac(varlist=a--c) 的值传递。