c*******r 发帖数: 323 | 1 假如有个data set, 有product, weight 两个变量, 如果同一个product不同记录
weight相差小于5, 保留最重的,其他删除
1 2.2
1 2.5
1 10
输出应该是
1 2.5
1 10
怎么编程? | n**********0 发帖数: 66 | 2 想到以下两个方法,但是肯定还有更好的:
方法一:用proc sql把这些weight从小到大变成weight1, weight2,weight 3...
然后再用loop一个个比,eg:
%do index = 1 %to I;
%let j=I+1;
%If &&weight&j- &&weight&i<5 %then %let weight&i=NA;
%end;
然后再变回去删掉等于NA的就好。
方法二:或者可以proc transpose把数值的都换到同一行可以直接用do loop |
|