c******a 发帖数: 725 | 1 我的数据如下
x1 x2 x3 x4
2 1 4 -1
0 -1 2 3
请问如何生成 x5, x5 是 x2 x3 x4 里面最接近x1但大于x1的数.换言之
x5 应该是这个样子
x5
4
2
非常感谢你的帮助 | l****u 发帖数: 529 | 2 data two(keep=x5);
set one;
array old[*] x2-x4;
array new[*] y1-y3;
do i=1 to 3;
new[i]=old[i]-x1;
if new[i]<=0 then new[i]=.;
end;
x5=min(of new[*])+x1;
run; | w*******n 发帖数: 469 | 3 data test1;
set test;
a=max(x1,x2); if a=x1 then a=.;
b=max(x1,x3); if b=x1 then b=.;
c=max(x1,x4); if c=x1 then c=.;
x5=smallest(1, a, b, c);
drop a b c;
run; | a****g 发帖数: 8131 | 4 i guess there is a typo error
x5=smallest(a, b, c);
right?
【在 w*******n 的大作中提到】 : data test1; : set test; : a=max(x1,x2); if a=x1 then a=.; : b=max(x1,x3); if b=x1 then b=.; : c=max(x1,x4); if c=x1 then c=.; : x5=smallest(1, a, b, c); : drop a b c; : run;
| w*******n 发帖数: 469 | 5 that is not typo, either way works!
【在 a****g 的大作中提到】 : i guess there is a typo error : x5=smallest(a, b, c); : right?
| c******a 发帖数: 725 | |
|