テーブルには1行と複数の列しかありません。私は1列と多くの行だけを返す必要があります。 SAS SQL経由で転置することは可能ですか?後SAS SQLを使用して1行と複数の列を持つテーブルを転記
column1 column2 column3 column4
1 2 3 4
::前
column
1
2
3
4
テーブルには1行と複数の列しかありません。私は1列と多くの行だけを返す必要があります。 SAS SQL経由で転置することは可能ですか?後SAS SQLを使用して1行と複数の列を持つテーブルを転記
column1 column2 column3 column4
1 2 3 4
::前
column
1
2
3
4
PROC TRANSPOSEを使用しない理由は、PROC TRANSPOSEという名前の列でもいくつの列がデフォルトですべての数値列を転置するかを知る必要はありません。
proc transpose data= out= ;
run;
すべてのカラムが数字ではありません。 – Keliimek
SASはすべてを文字に変換します。 VAR _ALL_を使うことができます。 –
あなたはSAS SQL(他のSAS PROCとは反対に)言及しているので、それがあれば少し冗長になりますけれども、これは、ソリューションです。
PROC SQL;
SELECT column1 AS column FROM table
UNION ALL
SELECT column2 AS column FROM table
UNION ALL
SELECT column3 AS column FROM table
UNION ALL
SELECT column4 AS column FROM table;
/* Add for each column */
QUIT;
これは単純に各列を結合(スタック)します。
単純な解決策ではありません。 SQLでは変数リストのショートカットが許可されていません。 proc transposeを使うべきです。あなたがSQLを主張する場合は、最初に列の数を決定してから、ユニオンステートメントを動的に生成するマクロが必要になります。私はそれが個人的に努力する価値があるとは思わない。 – Reeza