Как перенести мои данные в SAS, наблюдая за шагом данных
У меня есть база данных sas с чем-то вроде этого:
id birthday Date1 Date2
1 12/4/01 12/4/13 12/3/14
2 12/3/01 12/6/13 12/2/14
3 12/9/01 12/4/03 12/9/14
4 12/8/13 12/3/14 12/10/16
И я хочу данные в этой форме:
id Date Datetype
1 12/4/01 birthday
1 12/4/13 1
1 12/3/14 2
2 12/3/01 birthday
2 12/6/13 1
2 12/2/14 2
3 12/9/01 birthday
3 12/4/03 1
3 12/9/14 2
4 12/8/13 birthday
4 12/3/14 1
4 12/10/16 2
Спасибо твоей помощи, я на второй неделе использую sas <3 Edit: спасибо, оставайся мне, что я не нашел метод сортировки.
2 ответа
Добрый день. Следующее должно быть то, что вы после. Я не придумал простой способ переименовать столбцы, поскольку их нет в начальных данных.
/*Data generation for ease of testing*/
data begin;
input id birthday $ Date1 $ Date2 $;
cards;
1 12/4/01 12/4/13 12/3/14
2 12/3/01 12/6/13 12/2/14
3 12/9/01 12/4/03 12/9/14
4 12/8/13 12/3/14 12/10/16
; run;
/*The trick here is to use date: The colon means everything beginning with date, comparae with sql 'date%'*/
proc transpose data= begin out=trans;
by id;
var birthday date: ;
run;
/*Cleanup. Renaming the columns as you wanted.*/
data trans;
set trans;
rename _NAME_= Datetype COL1= Date;
run;
Смотрите больше с сайта Кентского университета
Два шага
- Поверните данные, используя
Proc TRANSPOSE
, - Измените имена выходных столбцов и их метки с помощью
PROC DATASETS
Образец кода
proc transpose
data=have
out=want
( keep=id _label_ col1)
;
by id;
var birthday date1 date2;
label birthday='birthday' date1='1' date2='2' ; * Trick to force values seen in pivot;
run;
proc datasets noprint lib=work;
modify want;
rename
_label_ = Datetype
col1 = Date
;
label
Datetype = 'Datetype'
;
run;
Порядок столбцов в выходной таблице TRANSPOSE:
- переменные id
- копировать переменные
_name_
а также_label_
- имена столбцов на основе данных
Образец 'want' показывает данные с именованными столбцами перед _label_
/ _name_
колонны. Единственный способ изменить основной порядок столбцов - переписать набор данных. Вы можете изменить то, как этот порядок воспринимается при просмотре, используя дополнительное представление данных или выходной Proc, который позволяет вам указать конкретный требуемый порядок.