2016-04-16 14 views
0

2つのデータセットがあり、そのうちの1つに数値変数が含まれ、もう1つにはこれらの数値変数を分割する条件が含まれています。私が対処しなければならなかった場合は他のデータセットの条件に基づいて変数を分類する

var1 var2 var1_cat var2_cat 
1  12  1   2 
8  4  2   1 

:次に、出力データセットは次のようになり

varname condition group 
var1  var1 < 5  1 
var1  var1 >= 5 2 
var2  var2 < 6  1 
var2  var2 >= 6 2 

var1 var2 
1  12 
8  4 

そして、他の1:最初のデータセットは、次のようになり、のは、言ってみましょう「標準」プログラミング言語のどれかを使って、ネストされた繰り返しを使うだけです。しかしSASとそのデータステップロジックは今のところ私にはあまり馴染みのないものです。

すべてのヘルプが評価されます。

+0

あなたのルールがどのように複雑になっていますか?それはSASで実装するのが難しい部分です。 SASは必ずしも変換を行う必要はありませんが、フォーマットは情報のカスタマイズされた表示を可能にします。 – Reeza

+0

以下のコードで、これら2つのテーブルを入力しましたか? –

答えて

1

これを「通常の言語」でどのように行うのかはわかりませんが、SASではコード生成が簡単です。インタプリタ言語を使用する利点の1つ。

たとえば、「ルール」データセットを一連のSQLケースステートメントに変換できます。

filename code temp; 
data _null_; 
    set rules end=eof; 
    by varname ; 
    file code ; 
    if _n_=1 then put 'create table want as select *' ; 
    newvar=cats(varname,'_cat'); 
    if first.varname then put ',case' ; 
    put ' when (' condition ') then ' group ; 
    if last.varname then put ' else . end as ' newvar ; 
    if eof then put 'from have;' ; 
run; 

ここでは、ファイルにコードを含めておきました。

proc sql; 
%include code/source2 ; 
quit; 

enter image description here

+0

それをチェックし、それを再加工し、理解し、完全に機能する。どうもありがとう! –

+0

こんにちは、あなたはそれを動作させるために何を変えましたか? –

関連する問題