問題タブ [datastep]

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 投票する
5 に答える
632 参照

mysql - データ ステップ/SQL Join/Merge/Union 2 データセット/テーブルと、同じ行/観察結果の削除

たとえば、このような2つのテーブルがあります

2 番目のテーブル:

以下のような結果を得るにはどうすればよいですか。

行 A - a は 2 つのテーブルから同じであるため、削除されました。左結合を使用しようとしていますが、結果が正しくありません。助けてください、事前に感謝します。本当に感謝しています。

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

merge - SAS データ ステップ 2 つのデータセットをマージ/変更しますが、マスター データセットの整合性定数 (pk) は保持します

私は以下のようなコードを持っています

トランザクション データセットをマスター データセットにマージし、マスターからの値をトランザクション データセットからの値で更新したいと考えています。これを達成するには、以下のコードを使用できます

結果は次のようになります

ただし、マスター データセットがリセットされ、マスター データセットの id 列の主キー制約が失われました。

私の知る限り、マージ、設定、および更新コマンドは、現在のデータセットを更新するのではなく、新しいデータセットを作成します。

変更ステートメントは現在のデータセットを更新する唯一のステートメントですが、上記のコードのマージ ステートメントを変更に置き換えても機能しません。

マージ後にマスター データセットの主な制約を元に戻すことでこの問題を解決できますが、これは良い解決策ではありません。

これ以外に方法はありますか?助けていただければ幸いです。事前に感謝します。

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

sas - SAS データセット内の単一のオブザベーションを変更する

次のデータセットがあるとします。

特定の人の年齢を変更するにはどうすればよいですか? name基本的に、a を指定して、SAS にその人の (観察の)age値を変更するように指示する方法を知りたいです。

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

sas - Select/When/Otherwise ステートメントのドキュメントはどこにありますか?

データ ステップで Select/When/Otherwise ステートメントを使用するのが好きですが、正しく実行する前にコードを常にデバッグする必要があります。必要な正確な構文を思い出すことはできず、SAS には適切なドキュメントがありません。(実際には、SCL のドキュメント以外では言及されていません)。ステートメントの後にセミコロンを付けたり、ブロックWhenが必要であることを忘れたりすることがあります。Doこの機能は正式にサポートされていませんか? そうでない場合、なぜ文書化されていないのですか?

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

sas - SAS がデータを読み取る順序を説明する (概念)

SAS がデータ ステップをどのように読み取り/実行するかを理解する必要があります。SASがデータステップを読み取る方法に関する情報を調べたところ、通常のデータステップとの関連では理解できない、マージ目的での読み取り方法に関する情報しかないようです。たとえば、次のコード行があるとします。

さて、これを考えると、「合計」は何に等しいでしょうか? 基本的に、SAS がこのステップをどのように読み取るかを知りたいのですが、どの行を最初に読み取り/実行しますか? それは最後から始まり、上に向かって進んでいきますか? それとも、一番上から始めて、下に向かって進んでいきますか? ありがとう。

0 投票する
5 に答える
13389 参照

sql - SAS datastep/SQL は、同じ ID を持つ複数のレコードから最新のレコードを選択します

たとえば、次のようなデータセットがあります。

datastep または sql で、id = 1 で最新の日付が 2002/01/01 のレコードを取得するにはどうすればよいですか? 助けていただければ幸いです。事前に感謝します。

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

sql - SAS - ID は同じだがステータスが異なる複数のレコードから選択する

1つの質問で必要なものを表現する方法がわからないため、誤解を招く(ある場合)質問のタイトルで申し訳ありません。

以下のようなデータセットがあります。

たとえば、上記のデータセットを使用すると、ステータスが完了していないユーザーを選択したい場合、得られる結果は次のようになります。

SASデータステップまたはPROC SQLで上記の結果を取得する方法はありますか? 助けていただければ幸いです。事前に感謝します。

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

sas - SAS で複数のレコードから単一のレコードを作成する

coaches_assistants次の構造で呼び出される SAS データセットがあります。ごとに常に 2 つのレコードしかありませんTeamID

これでやりたいことは、と呼ばれる追加のフィールドを持つデータセットを作成し、次のAssistantCodeようにすることです。

可能であれば、これを 1 つの DATA ステップで実行したいと考えています (ただし、最初に PROC SORT ステップが必要になる可能性があることは認識しています)。Python、Ruby、または従来のスクリプト言語で行う方法は知っていますが、SAS で行う方法はわかりません。

これを行う最善の方法は何ですか?

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

sas - 単純な SAS 計算

Names、ColA、ColB の 3 つの列を持つデータ セットがあります。名前ごとにいくつかの行があり、名前ごとに A から B を減算し、新しい列に A と B の差の残りの値を取得する必要があります。

これは可能ですか?IF-Then ステートメント、Do-While を使用してマクロを検討しましたが、頭がまだ Excel/VBA モードで動かないので、どうすればよいかわかりません。