0
我有一个数据集,其变量代表两种信息:变量测量和类别。SAS:跨类别浓缩单独的测量变量
例如,Var1A
测量类别A(例如男性/女性)的第一变量(例如血压),而Var2B
测量类别B(例如男性/女性)的第二变量(例如心率) 。
Key Var1A Var2A Var1B Var2B
--- ----- ----- ----- -----
002 1 2 3 4
031 5 6 7 8
028 9 10 11 12
我需要每个测量变量在类别类型中进行浓缩。
Key Type Var1 Var2
--- ---- ---- ----
002 A 1 2
002 B 3 4
028 A 9 10
028 B 11 12
031 A 5 6
031 B 7 8
精简数据集的排序对我来说并不重要。
我已经拿出了作品,并产生了上面看到的数据集。我基本上蛮横的强迫/摆弄我的方式来解决这个问题。但是,我想知道是否有一种更直接/直观的方式来做到这一点,可能不需要先排序并放弃这么多变量。
data have;
input key $ @@ Var1A Var2A Var1B Var2B;
datalines;
002 1 2 3 4
031 5 6 7 8
028 9 10 11 12
;
run;
proc sort data = have out = step1_sort;
by key;
run;
proc transpose data = step1_sort out = step2_transpose;
by key;
run;
data step3_assign_type_and_variable (drop = _NAME_);
set step2_transpose ;
if _NAME_ = 'Var1A' then do;
variable = 'Var1';
type = 'A';
end;
else if _NAME_ = 'Var1B' then do;
variable = 'Var1';
type = 'B';
end;
else if _NAME_ = 'Var2A' then do;
variable = 'Var2';
type = 'A';
end;
else if _NAME_ = 'Var2B' then do;
variable = 'Var2';
type = 'B';
end;
run;
proc transpose data = step3_assign_type_and_variable
out = step4_get_want (drop = _NAME_);
var col1;
by key type;
id variable;
run;