2016-07-19 25 views
1

我有一个dataset,其中一些细胞用888888888999999999加以确定。我会做的意思是不考虑这些价值观。那就是:SAS中条件均值的函数

x=5, y=10, z=888888888 

平均将为5

我该如何解决?

回答

0

当你计算跨变量时,只需将它们存储在一个数组中,循环遍历它们,然后将小于所需阈值(我已经使用了100,000,000)的值相加,然后除以变量的总数以得到均值。

data have; 
input x y z; 
datalines; 
5 10 888888888 
4 20 999999999 
; 
run; 


data want; 
set have; 
array vars{*} x y z; 
_sum=0; 
do _i = 1 to dim(vars); 
    if vars{_i}<1e8 then _sum+vars{_i}; 
end; 
mean_vars = _sum/dim(vars); 
drop _: ; 
run;