2016-03-31 9 views
0

私はデータセットを持っており、3つの列からなる新しい1列を作成する必要があります。私はprocレポートを使うべきだと知っています。3つの列を作る方法。 SAS

I have: 

Number Name Food Clothes Weather 
01  100 bread socks  rain 
02  103 apple shirt  snow 
02  103 milk  skirt  fog 
03  101 meat  jacket sun 


I need: 
Number Name COL 
01  100 bread  
       socks  
       rain 
02  103 apple  
       shirt  
       snow 
02  103 milk  
       skirt 
       fog 
03  101 meat 
       jacket 
       sun 
+0

SOの一般的なプロセスは、コード作成サービスではなく、コードとデバッグを手助けする場所です。それを試してみてください。他の人たちは、喜んで助けてくれるでしょう。あなたのケースでは、転置とprocレポートを使ってデータセットを再構成する必要があります。 – Reeza

答えて

0

なぜこのような理由でproc reportを使いたいのか分かりません。

data have; 
    input Number Name Food $ Clothes $ Weather $; 
    datalines; 
01  100 bread socks  rain 
02  103 apple shirt  snow 
02  103 milk  skirt  fog 
03  101 meat  jacket sun 
    ; 
run; 

data have2; 
    set have; 
    id = _n_; 
run; 

proc sql; 
    create table want1 as select 
     number, name, food as third_var, id 
     from have2; 
    create table want2 as select 
     number, name, clothes as third_var, id 
     from have2; 
    create table want3 as select 
     number, name, weather as third_var, id 
     from have2; 
quit; 

data want_stack; 
    set want1 want2 want3; 
    proc sort; by number id; 
run; 
+0

それは動作しますが、結果はデー​​タセット番号、名前、third_var(すべての番号の食べ物、すべての番号の食べ物、次にすべての番号の天気)ですが、私はthird_varが必要な作業で食糧、食べ物、衣服、天気などの情報を入力します。 – Tanya

+0

私の編集を参照してください。元の位置を追跡するための変数を追加するだけです。この変数を使用して結果を並べ替えることができます。 – superfluous

関連する問題