問題タブ [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.

0 投票する
1 に答える
881 参照

sas - SASは、リモートサーバーに送信する前に変数を変数の値に置き換えます

私は SAS を初めて使用し、リモート サーバーからデータを取得しようとしています。

以下は、リモートサーバーで実行しようとしているコードです。

現在、 「クエリ」が必要とする var1文字列を含む変数を渡そうとしています。はローカル マシンで評価され、値が含まれています。 indexvar1'abc'

ただし、var1はローカルで評価されるため、リモート サーバー上の変数を参照しようとすると、var1存在しないためエラーが発生します。

次のようにコードを実行すると (明示的な値を使用して'abc') 、正常に実行されます。

この「クエリ」を動的に実行する必要があります。と で囲まれたコードを実行しようとする前に、強制的var1に実際の値 (つまり ) に置き換える方法はありますか?'abc'rsubmitendrsubmit


更新: コード全体(リモートサーバー固有のものは省略しましたが、問題なく接続できます):

このコードを使用すると、ステートメントは変数とその値PROC PRINTを示すテーブルを正しく出力します。varこのステートメントは変数と変数TITLEを適切に評価しますが、オフのままにします。imvar1

このステートメントは、各変数proc exportの期待値を含む正しい CSV ファイルを作成します。var

提案どおり、変数を GLOBAL として宣言しようとしましたvarが、効果がないようです。var1コードはまだ変数をリモート サーバーに正しく渡すことができないようです。

&VAR1繰り返しますが、変数の実際の文字列値に置き換えると、コードは完全に機能します。

私が得るエラーは次のとおりです。

この場合のWHERE句は変数を受け入れることができないのでしょうか?

0 投票する
1 に答える
397 参照

sas - %macro からの結果をマクロ変数に代入する方法

観察ごとに特定の製品を購入する確率を含むデータセットがあります。次に例を示します。

各製品の中央値を計算する必要があります。これが私がそれを行う方法です:

この時点で、次のように呼び出して、各製品の中央値を取得できます。

最後に、中央値の数値結果をマクロ変数に代入します。それを行う方法についての私の最善の推測は、次のようなものです。

しかし、残念ながらそれはうまくいきません。

誰か助けてくれませんか?

乾杯!

0 投票する
3 に答える
508 参照

sas - 現在の SAS タイトルを保存し、一時的に変更し、マクロの最後に復元します

特定の書式設定でデータセットから Excel ファイルを印刷するマクロ %xl を作成しました。それ自体はうまく機能しています。ただし、マクロはtitle一時的に設定する必要があります。マクロの最後でタイトルをクリアすることはできますが、マクロ前のタイトルを保持して、マクロの最後のステップとして復元したいと考えています。

titleの現在の値をマクロ変数に取り込むにはどうすればよいですか? オプション付きの %sysfunc(GetOption()) に似ています。

ありがとう、pT

0 投票する
1 に答える
170 参照

date - SASは日付の文字表現をマクロ変数に保存します

私はこのようなテーブルを持っています

このテーブルを読み込んだ後、次のようなマクロ変数を作成します

私の問題は、dtBourse1,dtBourse2マクロ変数が価値があることです17433...(日付としての基になる整数値は整数として保存されます)

マクロ変数が文字であることを確認するにはどうすればよいですか"01FEB2001","02FEB2001"

0 投票する
1 に答える
478 参照

macros - if then else は sas でマクロをループします

大きなデータセット内の変数のダミーを作成するために、sas で if else ループ マクロを作成しようとしています。私が使用したコードは次のとおりです。

そして、私はマクロを呼び起こしました

var age_res1 を作成しましたが、条件は暗示されませんでした

if else do で % 記号を使用すると、条件が直接使用され、正確なコードは生成されませんが、条件も実行されませんでした

0 投票する
1 に答える
100 参照

sas - SAS マクロ言語

SAS では、マクロ言語を定義した後、たとえば、

x を 17 から 63 に置き換えたいのですが、キー入力の代わりにこれを行う簡単な方法はありますか?

0 投票する
4 に答える
451 参照

sas - SAS - 変数からマクロ名を作成

変数からマクロ名を設定する方法を知りたいです。

このような:

または、これが不可能な場合:

何か案は?どうもありがとう。

0 投票する
2 に答える
661 参照

sas - proc sqlを使用したSasマクロ

いくつかの回帰を実行したいのですが、各変数の非欠損観測の数を数えたいと思います。しかし、どの変数を使用するかはまだわかりません。うまくいかない次の解決策を思いつきました。何か助けはありますか?

ここでは基本的に、説明変数のそれぞれを変数に入れます。たとえば、var1 var 2 -> w1 = var1, w2= var2.
事前にいくつの変数があるかわからないことに注意してください。したがって、10 個の変数の余地を残しておきます。
次に、symput を使用して潜在的な変数を保存します。

次のステップは、保存した変数を使用して proc sql を実行することです。変数が 10 個未満の場合は機能しません。

このコードは 10 個未満の変数で機能しますか?