SAS - 我想计算变量的特征
SAS - I would like to count characteristics across variables
我有一个数据集,本质如下
data have;
input Name $ ab gh vz iz jh pq ch km eo lk;
datalines;
adam 7 8 7 0 0 0 0 0 0 0
bob 0 1 0 3 4 6 0 1 6 0
clint 0 0 0 5 4 3 1 0 0 2
;
run;
现在我想计算变量 iz
、jh
、ch
和 km
中有多少次数字大于零。结果应该是这样的
/* want
Name ab gh vz iz jh pq ch km eo lk count_of_iz_jh_ch_km
adam 7 8 7 0 2 3 0 0 0 0 1
bob 0 1 0 3 0 6 0 1 6 0 2
clint 5 0 0 5 4 3 1 2 0 2 4
*/
我将不胜感激任何帮助,因为我在互联网上搜索解决方案没有成功。
杰里特
下面的代码会将 have
中的所需变量初始化为一个名为 vars
的数组,然后对于每一行,每次这些变量之一 > 0 时进行计数。
data want;
set have;
array vars[*] iz jh ch km;
count_of_iz_ch_km = 0;
do i = 1 to dim(vars);
if(vars[i] > 0) then count_of_iz_ch_km+1;
end;
drop i;
run;
我有一个数据集,本质如下
data have;
input Name $ ab gh vz iz jh pq ch km eo lk;
datalines;
adam 7 8 7 0 0 0 0 0 0 0
bob 0 1 0 3 4 6 0 1 6 0
clint 0 0 0 5 4 3 1 0 0 2
;
run;
现在我想计算变量 iz
、jh
、ch
和 km
中有多少次数字大于零。结果应该是这样的
/* want
Name ab gh vz iz jh pq ch km eo lk count_of_iz_jh_ch_km
adam 7 8 7 0 2 3 0 0 0 0 1
bob 0 1 0 3 0 6 0 1 6 0 2
clint 5 0 0 5 4 3 1 2 0 2 4
*/
我将不胜感激任何帮助,因为我在互联网上搜索解决方案没有成功。
杰里特
下面的代码会将 have
中的所需变量初始化为一个名为 vars
的数组,然后对于每一行,每次这些变量之一 > 0 时进行计数。
data want;
set have;
array vars[*] iz jh ch km;
count_of_iz_ch_km = 0;
do i = 1 to dim(vars);
if(vars[i] > 0) then count_of_iz_ch_km+1;
end;
drop i;
run;