問題タブ [sas-macro]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sas - SAS:ProcOlap。ノンウェイアグリゲーション
作りたいRolap-cube
。
テーブルを作成した後、マクロ生成を使用して、でAggregationステートメントを記述しproc olap
ます。
そして、次のような警告とエラーを参照してください。
どうしたの?(データセットを指定していません。使用したいテーブルが多数あるためですRolap-cube
)
追加:私がこのような次元を持っている場合:
D
は最小レベルであり、2つの階層がD belond to B belong to A
あります。D belong to C
レベルでAGGREGATIONTABLEを指定した場合:
1)A B D
2)A B
3)A
4)C D
5)C
6)none
それからsasは私に、入力データセットを指定しないと言いました。(集計テーブルの1つ)。
A B C D
ただし、これらの6つの集計は、考えられるすべての詳細化をカバーします(またはのようなクロスカバーの詳細化はありませんA C D
)
import - SAS マクロはループします -- 複数のフラット ファイルをインポートします
さまざまなデータ セットにインポートしようとしている 17 個のフラット ファイルのリストがあります。すべてのファイルに同じデータ ステップがあるため、do while ループを記述してすべてのファイルをインポートしようとしています。
私は成功せずにここからいくつかのコードを適応させようとしました: http://www.sas.com/offices/europe/uk/support/sas-hints-tips/tips-enterprise-csv.html
http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a000543785.htm
というエラーが表示されます%do statement is not valid in open code
。これが私のコードです:
do-while ループの外でデータ ステップをテストしましたが、コードを使用して一度に 1 つのファイルに対して正常に動作し%let pathin = &path&n
ます。コードは最初のデータセットのデータファイルを書き込みます。しかし、すべてのファイルをループできるようにする必要があり、その方法がわかりません。これが初心者の質問である場合は申し訳ありません。私はちょうどSASを学んでいます。
ありがとう - アレックス
sas - SAS は 2 つのテキスト ファイルを比較します (Unix / Windows)
(異なるディレクトリにある) 2 つのテキスト ファイルを比較して、それらが異なるかどうかを確認する必要があります (バイナリ結果で問題ありません)。以下のようなデータセットが与えられた場合、これはデータステップ内で可能ですか?
または、マクロ コードでもかまいません。チェックサムの可能性があります。Windows と UNIX の両方でコードを実行する必要があります。
sas - SAS は、変数を介して列名を渡します
変数を介して列名を渡す必要があります。
「a1234」は、使用する列名 (ファイルに存在) です。文字列 a1234 ではありません。
これを行う理由は、すべてのパラメーターをスクリプトの先頭で定義して、コードをよりクリーンにするためです (この場合)。
フィードバックをお寄せいただきありがとうございます。
sas - マクロを含むカテゴリ変数
sasでカテゴリ変数を作成しようとしています。次のマクロを作成しましたが、実行しようとすると「無効なシンボリック変数名 xxx」というエラーが表示されます。これが私の目標を達成するための正しい方法でさえあるかどうかはわかりません。
これが私のコードです:
sas - SASを使用してテキストファイルを削除する
テキストファイル(またはそれに関する任意のファイル)を削除するための、できればOSに依存せず、マクロベースのコードを探しています
sas - 実行中のSASプログラムの名前を取得します
実行されているSASコード/プログラムを識別するための一般的な提案はありますか?
私のコードは汎用マクロ内で実行されるため、ストアードプロセス、別のマクロ、クライアントSASプログラム、またはIOMを使用して中間層を介して生成されたSASコード内で呼び出すことができます。可能な限り最高レベルの識別子が欲しいのですが(同じプログラムを再度実行すると同じ結果が返されるものなので、プロセスIDは役に立ちません)。
環境はウィンドウではないため、このコードは役に立ちません。
また、マクロは必ずしも呼び出される最初のプログラムではありません(プログラムである場合でも)。したがって、このコードも役に立ちません。
sas - sas マクロ呼び出しマクロ
こんにちは、あるマクロを使用して別のマクロを呼び出すプログラムがあります。
2 つの月 (jun12 と jul12) があり、各月には 2 つの部分 (1 と 2) があります。「Loop」というマクロを構築するループを実行したいです。その中で、配列を構築し、Do コメント do を使用しましたマクロ「try」を呼び出します。
うまくいかないようです。誰かがそれを手伝ってくれますか?ありがとうございました!
sas - SAS 9.2 で URL ファイル参照をクリアするにはどうすればよいですか?
私はこのようなSASマクロを書きました...
一度は動作しますが、再度実行すると、次のようなログ メッセージが表示されます。
filename myfile CLEAR
またはしようとすると、これらのメッセージも表示されますfilename myfile NULL
また、複数の URL で実行すると、最初のデータセットのみが作成され、他のデータセットはその正確なコピーになります。
SAS 構成ファイルにアクセスできません。管理者権限なしでこれを解決する必要があります。
ありがとう。
sas - 2 番目のパラメーターが - および で最初のパラメーターである SAS マクロを繰り返し呼び出す方法。削除されましたか?
ダッシュとピリオドを含むことができる文字列と、ダッシュとピリオドがアンダースコアに置き換えられた同じ文字列のクリーンアップされたバージョンの 2 つのパラメータを必要とするマクロがあります。
以下の作品:
%let foo = abc.def;
%mymacro(firstpar = &foo, secondpar=%sysfunc(translate(&foo,"__","-.")));
%let foo = abc-def;
%mymacro(firstpar = &foo, secondpar=%sysfunc(translate(&foo,"__","-.")));
...しかし、そのような変数の長いリストをループするにはどうすればよいでしょうか? リストの要素を一度に 1 つずつプレースホルダー変数に割り当ててからコマンドを評価するか、コマンド文字列に直接代入する (ただし、明示的に要求するまで評価しない) ための標準的なイディオムはありますか?
%DO_WHILEマクロ ライブラリを使用してみましたが、 &foo
s に句読点が含まれていない限りうまく機能します。もしそうなら、それは失敗し、私が試した引用の組み合わせはそれを機能させることができません.
私の実際のマクロは長すぎて複雑で、ここに投稿するには実用的ではありません。願わくば、この一般的な質問が答えられるほど明確であることを願っています。
%mymacro(firstpar = &foo, secondpar=%sysfunc(translate(&foo,"__","-.")));
「1回限りの呼び出しのように見え、値のリストが大きいマクロを繰り返し呼び出すための推奨される戦略は何foo
ですか?」
または、別の言い方をすれば、「SAS で Rparse()
とdeparse()
機能に最も近いものは何ですか?」