s****l 发帖数: 129 | 1 我有data如下,
ID size1 size2 size3 ... sizeN ...
1 100 102 103 ... 108 ...
2 102 105 203 ... 318 ...
3 103 106 303 ... 523 ...
4 104 108 103 ... 148 ...
5 101 109 104 ... 188 ...
另外有一个size的列表: 100,102,105,108,205,318,345,...
现在我想找出那些只要size1到sizeN任意一个size在这个size列表里的ID,请教大家有
没有比较好的coding方法。 | S*******1 发帖数: 251 | 2 let table one contain size;
table two contain size1-N
PROC SQL;
select a.*
From two a, one b
where a.size in (b.size1,b.size2,..,b.sizen);
quit;
【在 s****l 的大作中提到】 : 我有data如下, : ID size1 size2 size3 ... sizeN ... : 1 100 102 103 ... 108 ... : 2 102 105 203 ... 318 ... : 3 103 106 303 ... 523 ... : 4 104 108 103 ... 148 ... : 5 101 109 104 ... 188 ... : 另外有一个size的列表: 100,102,105,108,205,318,345,... : 现在我想找出那些只要size1到sizeN任意一个size在这个size列表里的ID,请教大家有 : 没有比较好的coding方法。
| s****l 发帖数: 129 | 3 嗯,这个管用,谢谢啦
【在 S*******1 的大作中提到】 : let table one contain size; : table two contain size1-N : PROC SQL; : select a.* : From two a, one b : where a.size in (b.size1,b.size2,..,b.sizen); : quit;
| P****D 发帖数: 11146 | 4 单纯好奇一下,有快一点的方法吗?
【在 S*******1 的大作中提到】 : let table one contain size; : table two contain size1-N : PROC SQL; : select a.* : From two a, one b : where a.size in (b.size1,b.size2,..,b.sizen); : quit;
| l****u 发帖数: 529 | 5 proc sql;
select size into: range separated by ','
from one;
quit;
data three;
set two;
array s [n] size:;
do i=1 to n;
if s[i] in (&range.) then do; i=n; output;end;
end;
run; |
|