Sample 25469: Transposing a large data set
These sample files and code examples are provided by SAS Institute
Inc. "as is" without warranty of any kind, either express or implied, including
but not limited to the implied warranties of merchantability and fitness for a
particular purpose. Recipients acknowledge and agree that SAS Institute shall
not be liable for any damages whatsoever arising out of their use of this material.
In addition, SAS Institute will provide no support for the materials contained herein.
This sample is from the SAS Sample Library. For additional information refer to SAS Help and Online Documentation.
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: TRANSPO3 */
/* TITLE: Transposing a Large Data Set */
/* PRODUCT: SAS */
/* SYSTEM: ALL */
/* KEYS: RESHAPE */
/* PROCS: TRANSPOSE, PRINT */
/* DATA: */
/* */
/* SUPPORT: UPDATE: */
/* REF: */
/* MISC: */
/* */
/****************************************************************/
/* A small data set is used for illustrative purposes. */
TITLE 'TRANSPOSING A LARGE DATA SET';
DATA FIRST;
ARRAY X[5] X1-X5;
DO N=1 TO 10;
DO _I_ =1 TO 5;
X[_I_]=N*100+_I_;
END;
OUTPUT;
END;
RUN;
PROC PRINT;
VAR N X1-X5;
TITLE2 'ORIGINAL DATA SET';
RUN;
PROC TRANSPOSE OUT=TEMP;
BY N;
RUN;
PROC PRINT;
VAR N _NAME_ COL1;
TITLE2 'INTERMEDIATE DATA SET BEFORE SORTING';
RUN;
PROC SORT OUT=TEMP;
BY _NAME_;
RUN;
PROC PRINT;
VAR N _NAME_ COL1;
TITLE2 'INTERMEDIATE DATA SET AFTER SORTING';
RUN;
PROC TRANSPOSE DATA=TEMP OUT=FINAL;
VAR COL1;
BY _NAME_;
RUN;
PROC PRINT;
TITLE2 'FINAL TRANSPOSED DATA SET';
RUN;
These sample files and code examples are provided by SAS Institute
Inc. "as is" without warranty of any kind, either express or implied, including
but not limited to the implied warranties of merchantability and fitness for a
particular purpose. Recipients acknowledge and agree that SAS Institute shall
not be liable for any damages whatsoever arising out of their use of this material.
In addition, SAS Institute will provide no support for the materials contained herein.
TRANSPOSING A LARGE DATA SET
ORIGINAL DATA SET
Obs N X1 X2 X3 X4 X5
1 1 101 102 103 104 105
2 2 201 202 203 204 205
3 3 301 302 303 304 305
4 4 401 402 403 404 405
5 5 501 502 503 504 505
6 6 601 602 603 604 605
7 7 701 702 703 704 705
8 8 801 802 803 804 805
9 9 901 902 903 904 905
10 10 1001 1002 1003 1004 1005
TRANSPOSING A LARGE DATA SET
INTERMEDIATE DATA SET BEFORE SORTING
Obs N _NAME_ COL1
1 1 X1 101
2 1 X2 102
3 1 X3 103
4 1 X4 104
5 1 X5 105
6 1 _I_ 6
7 2 X1 201
8 2 X2 202
9 2 X3 203
10 2 X4 204
11 2 X5 205
12 2 _I_ 6
13 3 X1 301
14 3 X2 302
15 3 X3 303
16 3 X4 304
17 3 X5 305
18 3 _I_ 6
19 4 X1 401
20 4 X2 402
21 4 X3 403
22 4 X4 404
23 4 X5 405
24 4 _I_ 6
25 5 X1 501
26 5 X2 502
27 5 X3 503
28 5 X4 504
29 5 X5 505
30 5 _I_ 6
31 6 X1 601
32 6 X2 602
33 6 X3 603
34 6 X4 604
35 6 X5 605
36 6 _I_ 6
37 7 X1 701
38 7 X2 702
39 7 X3 703
40 7 X4 704
41 7 X5 705
42 7 _I_ 6
43 8 X1 801
44 8 X2 802
45 8 X3 803
46 8 X4 804
47 8 X5 805
48 8 _I_ 6
49 9 X1 901
50 9 X2 902
51 9 X3 903
52 9 X4 904
53 9 X5 905
54 9 _I_ 6
55 10 X1 1001
TRANSPOSING A LARGE DATA SET
INTERMEDIATE DATA SET BEFORE SORTING
Obs N _NAME_ COL1
56 10 X2 1002
57 10 X3 1003
58 10 X4 1004
59 10 X5 1005
60 10 _I_ 6
TRANSPOSING A LARGE DATA SET
INTERMEDIATE DATA SET AFTER SORTING
Obs N _NAME_ COL1
1 1 X1 101
2 2 X1 201
3 3 X1 301
4 4 X1 401
5 5 X1 501
6 6 X1 601
7 7 X1 701
8 8 X1 801
9 9 X1 901
10 10 X1 1001
11 1 X2 102
12 2 X2 202
13 3 X2 302
14 4 X2 402
15 5 X2 502
16 6 X2 602
17 7 X2 702
18 8 X2 802
19 9 X2 902
20 10 X2 1002
21 1 X3 103
22 2 X3 203
23 3 X3 303
24 4 X3 403
25 5 X3 503
26 6 X3 603
27 7 X3 703
28 8 X3 803
29 9 X3 903
30 10 X3 1003
31 1 X4 104
32 2 X4 204
33 3 X4 304
34 4 X4 404
35 5 X4 504
36 6 X4 604
37 7 X4 704
38 8 X4 804
39 9 X4 904
40 10 X4 1004
41 1 X5 105
42 2 X5 205
43 3 X5 305
44 4 X5 405
45 5 X5 505
46 6 X5 605
47 7 X5 705
48 8 X5 805
49 9 X5 905
50 10 X5 1005
51 1 _I_ 6
52 2 _I_ 6
53 3 _I_ 6
54 4 _I_ 6
55 5 _I_ 6
TRANSPOSING A LARGE DATA SET
INTERMEDIATE DATA SET AFTER SORTING
Obs N _NAME_ COL1
56 6 _I_ 6
57 7 _I_ 6
58 8 _I_ 6
59 9 _I_ 6
60 10 _I_ 6
TRANSPOSING A LARGE DATA SET
FINAL TRANSPOSED DATA SET
Obs _NAME_ COL1 COL2 COL3 COL4 COL5 COL6 COL7 COL8 COL9 COL10
1 X1 101 201 301 401 501 601 701 801 901 1001
2 X2 102 202 302 402 502 602 702 802 902 1002
3 X3 103 203 303 403 503 603 703 803 903 1003
4 X4 104 204 304 404 504 604 704 804 904 1004
5 X5 105 205 305 405 505 605 705 805 905 1005
6 _I_ 6 6 6 6 6 6 6 6 6 6
This example demonstrates how to transpose a large data set.
| Type: | Sample |
| Topic: | SAS Reference ==> Procedures ==> TRANSPOSE
|
| Date Modified: | 2005-11-04 03:02:52 |
| Date Created: | 2005-05-23 13:55:57 |
Operating System and Release Information
| SAS System | Base SAS | All | n/a | n/a |