問題タブ [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.
mysql - データ ステップ/SQL Join/Merge/Union 2 データセット/テーブルと、同じ行/観察結果の削除
たとえば、このような2つのテーブルがあります
2 番目のテーブル:
以下のような結果を得るにはどうすればよいですか。
行 A - a は 2 つのテーブルから同じであるため、削除されました。左結合を使用しようとしていますが、結果が正しくありません。助けてください、事前に感謝します。本当に感謝しています。
merge - SAS データ ステップ 2 つのデータセットをマージ/変更しますが、マスター データセットの整合性定数 (pk) は保持します
私は以下のようなコードを持っています
トランザクション データセットをマスター データセットにマージし、マスターからの値をトランザクション データセットからの値で更新したいと考えています。これを達成するには、以下のコードを使用できます
結果は次のようになります
ただし、マスター データセットがリセットされ、マスター データセットの id 列の主キー制約が失われました。
私の知る限り、マージ、設定、および更新コマンドは、現在のデータセットを更新するのではなく、新しいデータセットを作成します。
変更ステートメントは現在のデータセットを更新する唯一のステートメントですが、上記のコードのマージ ステートメントを変更に置き換えても機能しません。
マージ後にマスター データセットの主な制約を元に戻すことでこの問題を解決できますが、これは良い解決策ではありません。
これ以外に方法はありますか?助けていただければ幸いです。事前に感謝します。
sas - SAS データセット内の単一のオブザベーションを変更する
次のデータセットがあるとします。
特定の人の年齢を変更するにはどうすればよいですか? name
基本的に、a を指定して、SAS にその人の (観察の)age
値を変更するように指示する方法を知りたいです。
sas - Select/When/Otherwise ステートメントのドキュメントはどこにありますか?
データ ステップで Select/When/Otherwise ステートメントを使用するのが好きですが、正しく実行する前にコードを常にデバッグする必要があります。必要な正確な構文を思い出すことはできず、SAS には適切なドキュメントがありません。(実際には、SCL のドキュメント以外では言及されていません)。ステートメントの後にセミコロンを付けたり、ブロックWhen
が必要であることを忘れたりすることがあります。Do
この機能は正式にサポートされていませんか? そうでない場合、なぜ文書化されていないのですか?
sas - SAS がデータを読み取る順序を説明する (概念)
SAS がデータ ステップをどのように読み取り/実行するかを理解する必要があります。SASがデータステップを読み取る方法に関する情報を調べたところ、通常のデータステップとの関連では理解できない、マージ目的での読み取り方法に関する情報しかないようです。たとえば、次のコード行があるとします。
さて、これを考えると、「合計」は何に等しいでしょうか? 基本的に、SAS がこのステップをどのように読み取るかを知りたいのですが、どの行を最初に読み取り/実行しますか? それは最後から始まり、上に向かって進んでいきますか? それとも、一番上から始めて、下に向かって進んでいきますか? ありがとう。
sql - SAS datastep/SQL は、同じ ID を持つ複数のレコードから最新のレコードを選択します
たとえば、次のようなデータセットがあります。
datastep または sql で、id = 1 で最新の日付が 2002/01/01 のレコードを取得するにはどうすればよいですか? 助けていただければ幸いです。事前に感謝します。
sql - SAS - ID は同じだがステータスが異なる複数のレコードから選択する
1つの質問で必要なものを表現する方法がわからないため、誤解を招く(ある場合)質問のタイトルで申し訳ありません。
以下のようなデータセットがあります。
たとえば、上記のデータセットを使用すると、ステータスが完了していないユーザーを選択したい場合、得られる結果は次のようになります。
SASデータステップまたはPROC SQLで上記の結果を取得する方法はありますか? 助けていただければ幸いです。事前に感謝します。
sas - SAS で複数のレコードから単一のレコードを作成する
coaches_assistants
次の構造で呼び出される SAS データセットがあります。ごとに常に 2 つのレコードしかありませんTeamID
。
これでやりたいことは、と呼ばれる追加のフィールドを持つデータセットを作成し、次のAssistantCode
ようにすることです。
可能であれば、これを 1 つの DATA ステップで実行したいと考えています (ただし、最初に PROC SORT ステップが必要になる可能性があることは認識しています)。Python、Ruby、または従来のスクリプト言語で行う方法は知っていますが、SAS で行う方法はわかりません。
これを行う最善の方法は何ですか?
sas - 単純な SAS 計算
Names、ColA、ColB の 3 つの列を持つデータ セットがあります。名前ごとにいくつかの行があり、名前ごとに A から B を減算し、新しい列に A と B の差の残りの値を取得する必要があります。
これは可能ですか?IF-Then ステートメント、Do-While を使用してマクロを検討しましたが、頭がまだ Excel/VBA モードで動かないので、どうすればよいかわかりません。