p*****0 发帖数: 3104 | 1 我现在有个数据有几百个columns,有数字也有char,其中数字column有4中形式的
missing variables: -444, -555, -666, -999.我要把他们全部替换成 '.'
我写了下面这个macro,但是不work。 在%if后的macrovariable不解析成column name,并且代表在此column里的各个数值
。 哪位帮忙给我看看应该如何处理,谢谢。
%macro replace(data);
%* Output the variable names and positions of data;
proc contents data=&data
position
noprint
out=var (keep=name varnum type);
run;
%* Preserve numeric variables only;
data var; set var;
where type=1;
run;
%* create global macro variables;
data _null_;
| o****o 发帖数: 8077 | 2 data new;
set yourdata;
array _n{*} _numeric_;
do j=1 to dim(_n);
if _n[j] in (-444, -555, -666, -999) then _n[j]=.;
end;
run; | p*****0 发帖数: 3104 | 3 谢谢牛人
【在 o****o 的大作中提到】 : data new; : set yourdata; : array _n{*} _numeric_; : do j=1 to dim(_n); : if _n[j] in (-444, -555, -666, -999) then _n[j]=.; : end; : run;
| p*****0 发帖数: 3104 | 4 感叹一下,真牛!
【在 o****o 的大作中提到】 : data new; : set yourdata; : array _n{*} _numeric_; : do j=1 to dim(_n); : if _n[j] in (-444, -555, -666, -999) then _n[j]=.; : end; : run;
| D******n 发帖数: 2836 | 5 再次感叹SAS越走越远了,有点向编程语言靠了,可惜还是不是编程语言。
【在 o****o 的大作中提到】 : data new; : set yourdata; : array _n{*} _numeric_; : do j=1 to dim(_n); : if _n[j] in (-444, -555, -666, -999) then _n[j]=.; : end; : run;
|
|