Как перенести данные с множеством столбцов в SAS - PullRequest
1 голос
/ 29 мая 2020

Привет, я новичок в SAS, и у меня возникла проблема. У меня есть данные, которые содержат 337 строк и 64 столбца. Это выглядит так: введите здесь описание изображения Мне нужно сделать вот так: введите здесь описание изображения

Я пробовал использовать pro c транспонирование, но я чувствовал. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 29 мая 2020

Вам нужно будет 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

...