問題タブ [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 マクロの取得
永久カタログから SAS マクロを取得するための構文を提供できる人はいますか? (つまり、work.sasmacr の場所にコピーします)
このライブラリに常に接続するとは限らないため、自動呼び出しの一部としてこれは必要ありません...
sas - 保存されたコンパイル済みSASマクロに使用されているライブラリをクリアする
次の構文を使用して、ライブラリに保存されたコンパイル済みマクロを作成するプログラムがあります。
ただし、後でライブラリ(MyLib)を再割り当てできないようです-次のメッセージが表示されます(SAS 9.1.3):
誰かアドバイスできますか?
sql - スペースで区切られたリストを SQL where 句に変換する正規表現
私はほとんど恥ずかしいですが、正規表現を作成しcat dog mouse
て SQL where 句のようなものを変更するのに苦労しています:
と
私は得る
ああ。助けていただければ幸いです。
編集: 2つの連続した正規表現を使用することになりました。SAS マクロでこれが必要であり、コードを簡潔にしたかったので、次のマクロを作成しました。
回答してくれたすべての人に感謝します!
sas - SAS マクロ変数の変更
一般に、マクロ変数をマクロ内で変更する必要がある状況にどのように対処すればよいでしょうか。たとえば、次のマクロがあるとします。
%test(3) が必要で、arraytwo が次元 4 を取得する必要がある場合、これらの状況をどのように管理しますか?
sas - SAS マクロ変数の参照連結
次のコードは、Excel ファイルから携帯電話の請求書を読み取り、多くのクリーニング/レポートを実行します。
作業を楽にするために、マクロ変数を使用してすべての参照を 3 月に更新しようとしています。以下の私の最初のアイデアは機能しません。
次のエラーが発生します。
変数 month への参照を取得して正しく更新するにはどうすればよいですか?
sas - リテラルの日付パラメーターをマクロのSAS日付値に変換します
リテラルの日付(例: '31may2011'd)をパラメーターとして受け取るSASマクロを作成したいと思います。マクロ内で、これをSAS日付値(例:18778)に変換したいと思います。
これを達成するためのエレガントな方法はありますか?もちろん、リテラル文字列を解析することでこれを行うこともできますが、もっと良い方法があるはずだと思います。
SAS9.1.3を使用しています
variables - データ ステップによる SAS 変数の連結
データ ステップの実行中に、データセットの特定の値を含む文字列変数を作成する方法を探しています。
サンプル データ セット work.test:
最終的に、変数は次のようになります: OneTwoFour (またはさらに良い FourTwoOne)。これはとても簡単に見えますが、それを行う方法を見つけることができないようです。また、次のようなマクロ変数を操作しようとしました。
しかし、これは次のようになります。
したがって、最後の値のみを取得します。これは、このマクロ機能に関する私の誤解が原因であるに違いないと思いますが、変数に最後の値しかない理由がわかりません。最後に symput が呼び出されて実際に実行されたか何かだと思っていましたが、コードを次のように調整すると:
それから私はそれらすべてを取得します:
したがって、私の最後の推測では、データステップを通過すると、「call symput ...」行が実際にマクロプロセッサーに追加され、「&stringvar」が既に置き換えられており、最後のステートメントの後にのみ、それらがすべて実行されます。
これは良い仮定ですか、それとも別の説明がありますか? 元の質問に戻ります:これを達成する簡単な方法はありますか(目的の変数を持つ)?
sas - 変数/列を介して SAS マクロを実行する方法は?
初めて SAS マクロを試しています。私の基本的な質問は、約 10000 個の変数を持つデータセットがあります。各列を個別に取得し、新しい条件変数を作成し、結果を保存してから、次の列に移動する必要があります。これらの列は順番通りではありません。SAS が列を識別するために使用する構文は何ですか? (" _ N _ " が行を識別する方法と同様)?
詳細はこちら。データは次のようになります。
v1 の値を見て、値 x より上にあるオブスの数と値 x より下にあるオブスの数を数え、それらの数をデータセットに記録してから、v2、v3、... v10000 に移動する必要があります。最後に、10000 個の変数のそれぞれについて、値 x を超える obs の数と値 x を下回る obs の数を示すデータセットを作成します。
標準の SAS コードで 1 つの変数に対して記述した場合と同じようにコードを記述しましたが、動作します。現在、そのコードをマクロ コードに変換することを意図していますが、1 つの変数から移動するループを構築する方法がわかりません。列を次に移動します。
あなたが与えることができる助けや参考文献は大歓迎です。
ありがとう。
sas - SAS -> シェル DB2 パススルーとマクロ解決
ネットワーク上および実際の db2 サーバーと SAS サーバーの間で大量のデータをやり取りするジョブを自動化しようとしています。私がやりたいのは、伝統的なパススルーです...
このようなものに:
シェル コマンドが早期に終了する原因となる 'ddMONyyyy'd の db2 日付形式の最初のいくつかの問題に遭遇しています。それを回避できれば、うまくいくはずだと思います。
db2 コマンドを実行するために余分な ' ' のセットを必要とせずに、マクロ変数を AIX (SAS) サーバーに渡すことができます。
何かご意見は?