問題タブ [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 投票する
2 に答える
714 参照

sas - PDV変数のフラッシュ

PDV内のすべての既存の変数を欠落に設定するコマンドまたは簡単な方法はありますか?

私はこのように実行されるいくつかのコードを持っています:

最初の「output」ステートメントに到達したら、すべてのPDV変数を欠落状態にリセットしたいと思います(例:var2 =''; var3 ='';)が、手動でそのように宣言する必要はありません。誰か助けてもらえますか?

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

sas - SAS エラー メッセージ (FATAL: MISSING スミア生成中にコード生成エラーが検出されました)

このエラーメッセージの意味を知っている人はいますか?

FATAL: MISSING スミア生成中にコード生成エラーが検出されました。

これは、約 40 個のデータセットを連結しているときに発生します。変数が多すぎる(約217)ためにメモリ制限に達したことが原因である可能性があると思いますが、これを確認するのは良いことです...

(ログファイル)

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

variables - データ ステップによる SAS 変数の連結

データ ステップの実行中に、データセットの特定の値を含む文字列変数を作成する方法を探しています。

サンプル データ セット work.test:

最終的に、変数は次のようになります: OneTwoFour (またはさらに良い FourTwoOne)。これはとても簡単に見えますが、それを行う方法を見つけることができないようです。また、次のようなマクロ変数を操作しようとしました。

しかし、これは次のようになります。

したがって、最後の値のみを取得します。これは、このマクロ機能に関する私の誤解が原因であるに違いないと思いますが、変数に最後の値しかない理由がわかりません。最後に symput が呼び出されて実際に実行されたか何かだと思っていましたが、コードを次のように調整すると:

それから私はそれらすべてを取得します:

したがって、私の最後の推測では、データステップを通過すると、「call symput ...」行が実際にマクロプロセッサーに追加され、「&stringvar」が既に置き換えられており、最後のステートメントの後にのみ、それらがすべて実行されます。
これは良い仮定ですか、それとも別の説明がありますか? 元の質問に戻ります:これを達成する簡単な方法はありますか(目的の変数を持つ)?

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

hash - LIKEまたは=の形式でのSASハッシュ結合

部分的なサブストリングでSASハッシュルックアップを実行することは可能ですか?

したがって、ハッシュテーブルキーには「LongString」が含まれますが、ターゲットテーブルキーには「LongStr」が含まれます。

(ターゲットテーブルのキー文字列の長さは異なる場合があります)

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

sas - SAS で特定の行を選択する

1 人の患者からの複数の記録を含む次のデータがあります。

1日目に記録のある患者を抽出したい; 1 日目と 2 日目の両方が利用可能で、1 日目と 2 日目と 3 日目がすべて利用可能である場合。そして他のものを通して。任意の sas ヘルプ。

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

sas - SAS DATA: 1 回だけ発生する観測を削除する方法

SAS に、"person_groups" という名前のデータセットがあるとします。「person」と「group」という名前の 2 つの変数があります。このデータセットは、各人をグループに割り当てるだけです。

グループに誰もいないすべての人をこのデータセットから削除するにはどうすればよいですか? つまり、すべてのシングルトン グループを削除するにはどうすればよいでしょうか?

proc sql[解決策または解決策があれば幸いdata stepです。どちらでもかまいません。]

補足: SAS は初めてです。私は長年 C++ と MATLAB を使用してきました。SAS DATA ステップで何かを行う方法が理解できないように感じます。それは非常に不格好で、奇妙で、エレガントではないようです。率直に言って、私は非常にイライラしています。疲れた人に希望を持っている人はいますか?:)

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

sas - グラフ内のノード/エッジをカウントする SAS Data Step

とという2 つの変数を持つという名前のデータセットで表される有向グラフあるとします。SAS Data Step を使用して、(1) ノードの数を数え、(2) エッジの数を数えます。linksfrom_idto_id

データlinksセットが次のようになっているとします。

この例では、3 つのノードと 4 つのエッジがあります。( には重複するエッジがないと仮定できます)links。ノードは 1、2、3 です。エッジは 1->2、2->3、3->1、3->2 です。

以下は、ノードとエッジをカウントするために SAS Data Step を proc sql と組み合わせて使用​​する SAS マクロです。それは完全に機能しますが、SAS Data Step を使用して、ノードとエッジのカウントが (潜在的に) より高速に行われるようにしたいと考えています。

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

sas - これは、データ ステップで何を意味しますか?

このデータステップでは、何をするのかわかりif last.yません...教えていただけますか?

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

sas - SAS data step / proc sqlは、自動インクリメントの主キーを使用して別のテーブルから行を挿入します

私は以下のように2つのデータセットを持っています

別のデータセット

2番目のテーブルから1番目のテーブルにすべての行を挿入するにはどうすればよいですか?状況は、最初のテーブルが永続的であるということです。2番目のテーブルは毎月更新されるので、毎月更新されるテーブルのすべての行を永続テーブルに追加して、次のようにします。

私が直面している問題は、データセット1からIDをインクリメントできないことです。検索した限り、SASのデータセットには自動インクリメントプロパティがありません。自動インクリメントはデータステップを使用して実行できますが、このような2つのテーブルの場合にデータステップを使用できるかどうかはわかりません。通常のSQLは

しかし、sasデータセットは自動インクリメント列をサポートしていないため、私が直面している問題があります。上記のprocsqlの後に以下のSASデータステップを使用して解決できます

これによりid列の値が増加しますが、コードはやや醜く、idは主キーであり、他のテーブルで外部キーとして使用されているため、古い行のIDを台無しにしたくありません。 。

私はSASの学習と作業の両方の過程にあるので、助けていただければ幸いです。前もって感謝します。

追加の質問:2番目のテーブルに新しい列がない場合、データステップを使用して必要なもの(月次テーブル(2番目)から永続テーブル(1番目)に新しい行を追加)を完了する方法はありますか?現在、この醜いproc sql/dataステップを使用して新しい列を作成しています