問題タブ [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.
date - SASは日付の文字表現をマクロ変数に保存します
私はこのようなテーブルを持っています
このテーブルを読み込んだ後、次のようなマクロ変数を作成します
私の問題は、dtBourse1,dtBourse2
マクロ変数が価値があることです17433...
(日付としての基になる整数値は整数として保存されます)
マクロ変数が文字であることを確認するにはどうすればよいですか"01FEB2001","02FEB2001"
macros - if then else は sas でマクロをループします
大きなデータセット内の変数のダミーを作成するために、sas で if else ループ マクロを作成しようとしています。私が使用したコードは次のとおりです。
そして、私はマクロを呼び起こしました
var age_res1 を作成しましたが、条件は暗示されませんでした
if else do で % 記号を使用すると、条件が直接使用され、正確なコードは生成されませんが、条件も実行されませんでした
sas - SAS マクロ言語
SAS では、マクロ言語を定義した後、たとえば、
x を 17 から 63 に置き換えたいのですが、キー入力の代わりにこれを行う簡単な方法はありますか?
sas - SAS - 変数からマクロ名を作成
変数からマクロ名を設定する方法を知りたいです。
このような:
または、これが不可能な場合:
何か案は?どうもありがとう。
sas - proc sqlを使用したSasマクロ
いくつかの回帰を実行したいのですが、各変数の非欠損観測の数を数えたいと思います。しかし、どの変数を使用するかはまだわかりません。うまくいかない次の解決策を思いつきました。何か助けはありますか?
ここでは基本的に、説明変数のそれぞれを変数に入れます。たとえば、var1 var 2 -> w1 = var1, w2= var2.
事前にいくつの変数があるかわからないことに注意してください。したがって、10 個の変数の余地を残しておきます。
次に、symput を使用して潜在的な変数を保存します。
次のステップは、保存した変数を使用して proc sql を実行することです。変数が 10 個未満の場合は機能しません。
このコードは 10 個未満の変数で機能しますか?
sas - 数値の昇順で名前を付けた一連のグローバル マクロ変数を作成します。
コードが 1 から 82 までの数字を反復し、proc format
そのマクロ変数を作成するときにステートメントで定義された形式を割り当てる次のマクロを作成しました。
これで、マクロ変数&myvar.
は正しく機能し、希望どおりに昇順で値が割り当てられます。
ただし、この 1 つの変数には新しい値が 82 回割り当てられ、プロセスの最後には最後の反復の値が割り当てられます。
この行で私が試みたのは、それぞれが異なる値を持つよう%let myvar_&u. = &myvar.;
に呼び出される 82 個の個別のグローバル変数を作成することです。&myvar_1.
&myvar_82.
ログが実行されると、次の警告が表示されます
必要な最後の変数が正しく割り当てられていないようで、その理由がわかりません。
問題が何であるかについて誰か提案がありますか?
ありがとう
format - データ値に基づいて異なる形式を適用する方法
SAS マクロにあるデータ ステップを修正しています。現在、データセット全体の新しいフィールドを作成するために単一の形式が使用されています。データセットのさまざまなサブセットで別の形式が使用される場所に修正しようとしています。(行が属するサブセットを示すフィールドがあります。)
一連の if ステートメントを使用してこれを行うこともできますが、将来カテゴリの数が変更された場合は変更する必要があります。call symput と resolve を使用して目的を達成できると思いますが、その構文がどうなるかはわかりません。if ステートメントに頼らずにこれを達成できますか?
unix - 任意の sas データセットに行を挿入するユーティリティ
sas データセットに 1 行を挿入する UNIX ユーティリティを作成したいと考えています。実行すると、このスクリプトは、データセット内の各変数に値を挿入するようにユーザーに要求します (できれば、変数の型と長さを伝えます)。次に、EXPORTコマンドを使用してこれらの値をSASに渡し、SASはこれらの変数のマクロ変数を作成し、'proc sql;を使用します。insert into' は値をデータセットに挿入します。
raw_str は、追跡データと同じ型と長さの変数になります
次に、このリストをunixに渡したいです。そこから、ユーザーにこれらの変数の値を入力するように求め、次にこれらの値を使用してtracking_dataに追加します。
問題は、unix から sas に値を渡し、これらの値のマクロ変数を作成することです。
変数の長さと型をフロント エンドに渡すこともできます。これにより、raw_str データセットの型と長さに一致する値を渡すようにユーザーに指示できます。
最後に、proc append を使用して元のデータに追加できます
sas - マクロを解決できません
上記のコードは、治療グループの被験者数をマクロ変数に割り当て、それを使用して上記のコードに示すようにパーセンテージを計算します。書き込まれたマクロ ブロックは、データステップ TOTAL で解決されず、警告またはエラーをスローしていません。
sas-macro - SAS - %if 式内のマクロ エラー
私はこのコードを書きました:
エラーは次のとおりです。
エラー: 式に必要な演算子が見つかりません: &hoy = 14
しかし、%let hoy = 14; と入力すると、完璧に動作します。