今回はTRANSPOSEについて解説します。
/* num char char */
data data1;
NO=1111; CHAR="A"; MOJI="AAAA";
output;
NO=2222; CHAR="B"; MOJI="BBBB";
output;
NO=3333; CHAR="C"; MOJI="CCCC";
output;
NO=4444; CHAR="D"; MOJI="DDDD";
output;
NO=5555; CHAR="E"; MOJI="EEEE";
output;
NO=6666; CHAR="F"; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/num-char-char1.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/num-char-char2-1024x374.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのNOを横持ちにしている。
- 変数名NOは_NAME_,各値はCOL1,COL2…になる。
- varが無いと、数値型の列で縦横の置換が起こる。
/* char num char */
data data1;
NO="A"; CHAR=1111; MOJI="AAAA";
output;
NO="A"; CHAR=2222; MOJI="BBBB";
output;
NO="A"; CHAR=3333; MOJI="CCCC";
output;
NO="B"; CHAR=4444; MOJI="DDDD";
output;
NO="B"; CHAR=5555; MOJI="EEEE";
output;
NO="B"; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/char-num-char1.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/char-num-char2-1024x363.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのCHARを横持ちにしている。
- 変数名CHARは_NAME_,各値はCOL1,COL2…になる。
- varが無いと、数値型の列で縦横の置換が起こる。
/* num num char */
data data1;
NO=1111; CHAR=1111; MOJI="AAAA";
output;
NO=2222; CHAR=2222; MOJI="BBBB";
output;
NO=3333; CHAR=3333; MOJI="CCCC";
output;
NO=4444; CHAR=4444; MOJI="DDDD";
output;
NO=5555; CHAR=5555; MOJI="EEEE";
output;
NO=6666; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/num-num-char1.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/num-num-char2-1024x375.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのNO,CHARを横持ちにしている。
- 変数名NO,CHARは_NAME_,各値はCOL1,COL2…になる。
- varが無いと、数値型の列で縦横の置換が起こる。
/* num char char var有 */
data data1;
NO=1111; CHAR="A"; MOJI="AAAA";
output;
NO=2222; CHAR="B"; MOJI="BBBB";
output;
NO=3333; CHAR="C"; MOJI="CCCC";
output;
NO=4444; CHAR="D"; MOJI="DDDD";
output;
NO=5555; CHAR="E"; MOJI="EEEE";
output;
NO=6666; CHAR="F"; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; var NO; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/92f86953fb48108e0c9303b7fd541b49.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/25eaca013db3786b287e0f757b13a985-1024x364.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのNOを横持ちにしている。
- 変数名NOは_NAME_,各値はCOL1,COL2…になる。
- varにより置換する列を指定できる。
/* char num char var有 */
data data1;
NO="A"; CHAR=1111; MOJI="AAAA";
output;
NO="A"; CHAR=2222; MOJI="BBBB";
output;
NO="A"; CHAR=3333; MOJI="CCCC";
output;
NO="B"; CHAR=4444; MOJI="DDDD";
output;
NO="B"; CHAR=5555; MOJI="EEEE";
output;
NO="B"; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; var NO; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/5eec535e880a7deb591a705356a78547.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/6a1ce2bae42df231384b6d13d8506ecc-1024x378.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのNOを横持ちにしている。
- 変数名NOは_NAME_,各値はCOL1,COL2…になる。
- varにより置換する列を指定できる。
- varには文字型の変数も指定できる。
/* num num char var有 */
data data1;
NO=1111; CHAR=1111; MOJI="AAAA";
output;
NO=2222; CHAR=2222; MOJI="BBBB";
output;
NO=3333; CHAR=3333; MOJI="CCCC";
output;
NO=4444; CHAR=4444; MOJI="DDDD";
output;
NO=5555; CHAR=5555; MOJI="EEEE";
output;
NO=6666; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; var NO; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/ae7806d991f5cf470c60c34605daf2fc.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/13f270b6ee68c6f07ca6ec453c39071a-1024x374.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのNOを横持ちにしている。
- 変数名NOは_NAME_,各値はCOL1,COL2…になる。
- varにより置換する列を指定できる。
- varには数値型の変数も指定できる。
/* var複数 */
data data1;
NO=1111; CHAR="A"; MOJI="AAAA";
output;
NO=2222; CHAR="B"; MOJI="BBBB";
output;
NO=3333; CHAR="C"; MOJI="CCCC";
output;
NO=4444; CHAR="D"; MOJI="DDDD";
output;
NO=5555; CHAR="E"; MOJI="EEEE";
output;
NO=6666; CHAR="F"; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; var NO CHAR MOJI; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/25c178aa2f849492147593d1aa78e775.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/ea8879d53321adbe8e9556f4be71a10f-1024x399.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのNO,CHAR,MOJIを横持ちにしている。
- 変数名NO,CHAR,MOJIは_NAME_,各値はCOL1,COL2…になる。
- varにより置換する列を指定できる。
- varには複数の変数も指定できる。
/* var by */
data data1;
NO="A"; CHAR=1111; MOJI="AAAA";
output;
NO="A"; CHAR=2222; MOJI="BBBB";
output;
NO="A"; CHAR=3333; MOJI="CCCC";
output;
NO="B"; CHAR=4444; MOJI="DDDD";
output;
NO="B"; CHAR=5555; MOJI="EEEE";
output;
NO="B"; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; var MOJI; by NO; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/var-by1.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/var-by2.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのMOJIをNOごとに横持ちにしている。
- 変数名MOJIは_NAME_,各値はCOL1,COL2…になる。
- varにより置換する列を指定できる。
- byにより、グループ単位を指定できる。(A,B)
/* by var */
data data1;
NO="A"; CHAR=1111; MOJI="AAAA";
output;
NO="A"; CHAR=2222; MOJI="BBBB";
output;
NO="A"; CHAR=3333; MOJI="CCCC";
output;
NO="B"; CHAR=4444; MOJI="DDDD";
output;
NO="B"; CHAR=5555; MOJI="EEEE";
output;
NO="B"; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; by NO; var MOJI; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/by-var1.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/by-var2.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのMOJIをNOごとに横持ちにしている。
- 変数名MOJIは_NAME_,各値はCOL1,COL2…になる。
- varにより置換する列を指定できる。
- byにより、グループ単位を指定できる。(A,B)
- varとbyを入れ替えても実行できる。
/* by 数値型 */
data data1;
NO="A"; CHAR=1111; MOJI="AAAA";
output;
NO="A"; CHAR=2222; MOJI="BBBB";
output;
NO="A"; CHAR=3333; MOJI="CCCC";
output;
NO="B"; CHAR=4444; MOJI="DDDD";
output;
NO="B"; CHAR=5555; MOJI="EEEE";
output;
NO="B"; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; var NO; by CHAR; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/5ab959926f4aaab44c2204045c5114cc-1.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/561848c7d9e40c3601b143da93341983.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのNOをCHARごとに横持ちにしている。
- 変数名NOは_NAME_,値はCOL1になる。
- varにより置換する列を指定できる。
- byにより、グループ単位を指定できる。(1111, 2222…)
- byには数値型の変数も指定できる。
/* varとbyで同じ変数 */
data data1;
NO="A"; CHAR=1111; MOJI="AAAA";
output;
NO="A"; CHAR=2222; MOJI="BBBB";
output;
NO="A"; CHAR=3333; MOJI="CCCC";
output;
NO="B"; CHAR=4444; MOJI="DDDD";
output;
NO="B"; CHAR=5555; MOJI="EEEE";
output;
NO="B"; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; var NO; by NO; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/1895d17d6719f4f5f5efa6d87e432544.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/281da471f7d2fb6117ac697d4b5cbdc5.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのNOをNOごとに横持ちにしている。
- 変数名NOは_NAME_,各値はCOL1,COL2…になる。
- varにより置換する列を指定できる。
- byにより、グループ単位を指定できる。(A,B)
- varとbyで同じ変数を指定しても、置換できる。
/* byのみ */
data data1;
NO="A"; CHAR=1111; MOJI="AAAA";
output;
NO="A"; CHAR=2222; MOJI="BBBB";
output;
NO="A"; CHAR=3333; MOJI="CCCC";
output;
NO="B"; CHAR=4444; MOJI="DDDD";
output;
NO="B"; CHAR=5555; MOJI="EEEE";
output;
NO="B"; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; by NO; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/a5a2cb65e8327a6d84faf238d21e8466.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/d942531ae9d7f22bd6e287822bfd1024.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのCHARをNOごとに横持ちにしている。
- 変数名CHARは_NAME_,各値はCOL1,COL2…になる。
- 数値型の列で縦横の置換が起こる。
- byにより、グループ単位を指定できる。(A,B)
- byだけで、varが無くても置換はされる。
/* by 数値型 */
data data1;
NO="A"; CHAR=1111; MOJI="AAAA";
output;
NO="A"; CHAR=2222; MOJI="BBBB";
output;
NO="A"; CHAR=3333; MOJI="CCCC";
output;
NO="B"; CHAR=4444; MOJI="DDDD";
output;
NO="B"; CHAR=5555; MOJI="EEEE";
output;
NO="B"; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; by CHAR; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/3bb269ea257792b0777fe44ef9c6c564.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/d9175e04c3522f9e1103cccea220a1da.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 今回は、置換はされていない。
- byにより、グループ単位を指定できる。(1111,2222…)
- 数値型の列がbyで指定されているため、varが無い限りは、置換されない。
/* id */
data data1;
NO=1111; CHAR=1111; MOJI="AAAA";
output;
NO=2222; CHAR=2222; MOJI="BBBB";
output;
NO=3333; CHAR=3333; MOJI="CCCC";
output;
NO=4444; CHAR=4444; MOJI="DDDD";
output;
NO=5555; CHAR=5555; MOJI="EEEE";
output;
NO=6666; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; var MOJI; by NO; id CHAR; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/id1.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/id2-1024x423.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのMOJIをNOごとに横持ちにしている。
- 変数名MOJIは_NAME_,各値は1111,2222…になる。
- varにより、置換する列を指定できる。
- byにより、グループ単位を指定できる。(1111,2222…)
- idにより、横持ちの際にさらにグループ分けできる。
/* idのみ */
data data1;
NO=1111; CHAR=1111; MOJI="AAAA";
output;
NO=2222; CHAR=2222; MOJI="BBBB";
output;
NO=3333; CHAR=3333; MOJI="CCCC";
output;
NO=4444; CHAR=4444; MOJI="DDDD";
output;
NO=5555; CHAR=5555; MOJI="EEEE";
output;
NO=6666; CHAR=6666; MOJI="FFFF";
output;
run;
proc transpose data=data1 out=data2; id CHAR; run;
![](https://how-to-business.com/wp-content/uploads/2021/11/294d64118e2ae55572d8f80e5b3d47e4.png)
![](https://how-to-business.com/wp-content/uploads/2021/11/6150747dfb53fd4b641ad03ff4185071-1024x419.png)
- TRANSPOSEにより、縦横を入れ替えることができる。
- 縦持ちのNOを横持ちにしている。
- 数値型の列(NO)で縦横の置換が起こる。
- idだけで、varが無くても置換はされる。
- 数値型の列(CHAR)がidで指定されているため、残った数値型の列(NO)で置換される。