Разделение двух строк в SAS

Я хочу создать новые столбцы, разделив существующие строки. Код для таблицы выглядит следующим образом:

DATA WORK.dataset;
  INPUT      Case1 Case2  Case3  Kat$;
   datalines;
10 100 1000 A
2 2 2 B
;

И я хочу, чтобы мой результат был таблицей данных, которая выглядит так:

CaseX1   CaseX2   CaseX3
5        50       500 

Поэтому я хочу, чтобы один столбец был разделен другим.


person Mikael Holmkvist    schedule 13.06.2019    source источник
comment
что ты уже испробовал? Проводились ли вы какие-либо исследования потенциальных подходов к этой проблеме?   -  person user667489    schedule 13.06.2019


Ответы (1)


Выходом может быть работа с proc transpose для работы со столбцами, а затем использование SQL для выполнения трюка следующим образом:

DATA WORK.dataset;
  INPUT      Case1 Case2  Case3  Kat$;
   datalines;
10 100 1000 A
2 2 2 B
;

/*Taking only numeric columns*/
data want_num(keep=_NUMERIC_) want_char(keep=_CHARACTER_);
    set work.dataset;
run;

/*Transposing dataset */
proc transpose data=work.want_num out= work.dataset1(drop=_:);
run;
/*Calculating the division*/
proc sql;
create table work.dataset2 as
select  col1/col2 as Case1X
from work.dataset1;
quit;
/*Transposing back*/
proc transpose data= work.dataset2 out= res(drop=_:) prefix=CaseX;
run;

Ваше здоровье!

person Carles Sans Fuentes    schedule 13.06.2019