r******e 发帖数: 115 | 1 我有一个data,叫temp1 就一列
date_n
01
02
..
31
我想生成一个新的data叫temp2
date_n t
01 1000
01 1001
01 1002
.. ..
01 2000
02 1000
02 1001
02 1002
.. ..
02 2000
03 1000
.. ..
03 2000
.. ..
31 1000
.. ..
31 2000
请问如何用proc sql 生成temp2 ?
多谢指教. |
k*******a 发帖数: 772 | 2 先产生一个data只含有变量t,值为1000, 1001,....2000
然后把你的data和他cross join |
h********o 发帖数: 103 | 3 That's Cartesian product of tables:
========================================
DATA TEMP1;
DO DATE_N = 1 TO 31;
OUTPUT;
END;
RUN;
DATA TEMP2;
DO T = 1000 TO 2000;
OUTPUT;
END;
RUN;
PROC SQL;
CREATE TABLE TEMP AS
SELECT * FROM TEMP1, TEMP2;
QUIT; |
r******e 发帖数: 115 | 4 thank you!
【在 k*******a 的大作中提到】 : 先产生一个data只含有变量t,值为1000, 1001,....2000 : 然后把你的data和他cross join
|
r******e 发帖数: 115 | 5 thank you!
【在 h********o 的大作中提到】 : That's Cartesian product of tables: : ======================================== : DATA TEMP1; : DO DATE_N = 1 TO 31; : OUTPUT; : END; : RUN; : DATA TEMP2; : DO T = 1000 TO 2000; : OUTPUT;
|
s*********r 发帖数: 909 | 6 Do you have to use proc sql?
Using data step is easier.
data temp2;
set temp1;
do t=1000 to 2000;
output;
end;
run; |
r******e 发帖数: 115 | 7 Thank you.
【在 s*********r 的大作中提到】 : Do you have to use proc sql? : Using data step is easier. : data temp2; : set temp1; : do t=1000 to 2000; : output; : end; : run;
|