如何在SAS中对多列数据进行转置处理

问题描述 投票:1回答:1

嗨,我在SAS的新,我有一个问题。我有数据,其中包含337行和64列.它看起来像这样。在这里输入图像描述我需要做这样的。在这里输入图像描述

我已经尝试使用proc转置,但我觉得,请帮助。

sas transpose proc
1个回答
0
投票

你将需要 TRANSPOSE BY DATE 然后 SORT by country date,我猜测国家是来自 标签 的原始变量。

例如:3个日期和5个变量,对于较大的数据很容易改变。

data total_returns(label='Example data');
  do date = '01jan2020'd to '03jan2020'd;
    array RI RI_1-RI_5;
    do over ri;
      demo_value + 1;
      RI = demo_value;
    end;
    output;
  end;
  label
    RI_1 = 'MSCI Country Biff blah blah blah'
    RI_2 = 'MSCI Country Bam blah blah blah'
    RI_3 = 'MSCI Country Boom blah blah blah'
    RI_4 = 'MSCI Country Zwok blah blah blah'
    RI_5 = 'MSCI Country Pow blah blah blah'
  ;
  format date yymmdd10.;
  drop demo_value;
run;

proc transpose 
  data=total_returns 
  out=stage1 ( 
    drop=_name_ 
    rename= ( _label_=Country  
              col1 = RI
            ) 
  )
;
  by date;
  var RI_1-RI_5;
  label country = ' ';
run;

proc sort data=stage1 out=want;
  by country date;
run;

proc print label data=total_returns;
  title "Original, across/array layout";
proc print data=want;
  title "Transposed and Sorted, categorical/vector layout";
run;

输出。enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.