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;