2016-05-24 15 views
0

比較的基本的な[proc transpose]を試みていますが、問題はデータがソートされることを期待しているということです。これは私が使用している変数の1つに対しては問題ありませんが、他の変数を並べ替えることはできません。私が扱っているデータはこのように見えます。データをソートする必要なしにSAS proc transposeを実行する

data have; 
    input SESSION $ Activity $; 
    datalines; 
AAAA Activity1 
AAAA Activity1 
AAAA Action1 
AAAA Action1 
AAAA Activity2 
AAAA Activity2 
AAAA Action1 
BBBB Action1 
BBBB Action3 
BBBB Action3 
BBBB Activity2 
BBBB Activity2 
CCCC Activity1 
CCCC Activity1 
CCCC Action2 
CCCC Action2 
CCCC Action4 
CCCC Action1 
CCCC Activity1 
; 
run; 

私はデータをこのように見せようとしているので、セッションごとに異なるアクション/アクティビティが水平方向に移動します。

data have; 
input Session $ Label $ Part"x" $; 
datalines; 
AAAA Journey Activity1 Activity1 Action1 Action1 Activity2 Activity2 Action1 
BBBB Journey Action1  Action3  Activity2 Activity2 
CCCC Journey Activity1 Activity1 Action2 Action2 Action4 Action1 Activity1 

私は次のコードで遊んでてきたが[PROC転置]機能は、この場合の「アクティビティ」にすることはできませんソートするデータは、必要とします。私は[ソートされていない]関数を使う必要があると思いますが、どこに置くべきか分かりません。私はこれが正しいとは限りませんが、私は以下のことを持っています。

proc sort data=custs.tenmay_pre_transpose 
     out=custs.tenmay_trans_srt ; 
by SESSIONID Activty_Category notsorted; 
run; 

proc transpose data=custs.tenmay_trans_srt 
       out= custs.tenmay_traspose 
       name=Journey; 
by SESSIONID; 
run; 

答えて

2

Activityはソートする必要はありません。 by変数のみをソートする必要があります。何をしたいあなたを取得

proc sort data=have; 
    by session; 
run; 

proc transpose data=have 
       out= want 
       name=Journey; 
by SESSION; 
var activity; 
run; 

Journeyがそこに収まるようになっていますが、コードの中で持っているとして、私はそれを残している場合、私は(私はよく分からないと思う - それは変数の格納の名前です。転置された変数の名前)。

+0

ブリリアント!ありがとう!私はそれを働かせることができました。私は今、どのように動作するのだろうかと思っています。並べ替えられたデータセットは何らかの形でメモリに保持されていますか? [proc transpose]がソートの出力を知るためには、[out =]文が必要だと思っていました。 – Taylrl

+2

'out ='がなければ、 'proc sort'は入力データセットを置き換えます。 – user667489

関連する問題