私は、変数のリストを変更して特定の方法でデータセットを編成しようとしています。私が持っている問題は、データセットに実際に存在する変数の数がわからないということです。私はこれまで、変数のリストが静的だったデータステートメントの後にPROC SQL
ステートメントまたはRETAIN
ステートメントを使用してこれを行いました。SAS/SQLの変数を動的に注文する
私のデータは次のようになります。
APPNUM DATE REASON1 NAME1 REASON2 NAME2 etc
123 1/1/2017 X Jon Y Mary etc
これは、SQLを使用した簡単だろうか、文を保持:
APPNUM DATE REASON1 REASON2 REASON3 REASON4 NAME1 NAME2 NAME3 NAME4
123 1/1/2017 X Y Z A Jon Mary Tom Suzie
が、私はそれが次のようになりたいです。しかし、私はこれらの変数を一緒に引き出すためにループなどを使用しています。提示される変数の数は入力データに依存します。いくつかの日には20件の理由/名前があり、他にはそれぞれ1件あるかもしれません。
変数名のリストをプルするために、次のコードを試してから、APPNUM、DATEを注文し、最後に変数名の最後の桁で注文しました。 I. 1,1,2,2,3,3 - しかし、私は失敗しました。リストは正しく格納されていました。エラーはありませんが、& VARLISTの値が解決されました。彼らは期待どおりに注文されていません。誰もこれを試してこれを達成しましたか?
APPNUM, DATE, NAME1...2...3..., REASON1...2...3...
ない:
APPNUM, DATE, NAME1, REASON1, NAME2, REASON2....
ORDER BYはなぜ後方ですか?また、私のSUBSTRは間違っていません..単に長さ-Nを実行すれば、SASはその点から残りの文字列にsubstrを置きます。 I. 'データテスト; 長さa $ 3; 入力a; データライン; abc ; 実行; proc sql; 新しいテーブルを作成する select substr(a、length(a)-0)をa1として、 からtest; 終了します。 proc印刷データ=新規; ' は' c'を生成しますが、今私は自分自身にこれはまだ1&2桁をサポートしないと説明しています – DukeLuke
番号と名前で注文したいと思います。それ以外の場合は、最初にグループ化されたすべての名前が取得されます。上記のコードを試してみてください。それはあなたが求めるものです。 – DomPazz