与数组水平相加

时间:2014-08-08 19:24:13

标签: sas

尝试使用以下代码水平求和并创建一个虚拟总计。因此,数组中的每个变量都是一个虚拟标志。我想计算每行虚拟标志的数量。

data rep;
    set clean;
    array missU (9) util_92013  util_32014  util_22014  util_72013  util_82013  util_12014  util_42014  util_122013 util_62014; 
    do i = 1 to 9;
        totalU = sum(of missU(i));
    end;
    drop i;
run;

我继续获得NOTE: Missing values were generated as a result of performing an operation on missing values.

1 个答案:

答案 0 :(得分:1)

你不需要循环。

data rep;
  set clean;
  array missU ... ;  
  totalU = sum(of missU[*],0);
run;

正如user667489在注释中指出的那样,在sum函数中添加零将避免在所有标志丢失时生成缺失值(如果需要的话)。