我想你只需要在BY表中加上身高。
首先,我们将示例数据转换为SAS数据集。
data have ;
input Height $ Front Middle Rear ;
cards;
Low 125 185 126
Low 143 170 136
Medium 141 176 128
Medium 137 161 133
High 129 157 149
High 141 152 137
;
现在让我们添加一个标识符来唯一地标识每一行。请注意,如果您真的使用数据步骤读取数据,则可以在读取数据的同一步骤中执行此操作。
data with_id ;
row_num+1;
set have;
run;
现在我们可以转置。
proc transpose data=with_id out=want (rename=(_name_=Location col1=Price));
by row_num height ;
var front middle rear ;
run;
结果:
Obs row_num Height Location Price
1 1 Low Front 125
2 1 Low Middle 185
3 1 Low Rear 126
4 2 Low Front 143
5 2 Low Middle 170
6 2 Low Rear 136
7 3 Medium Front 141
8 3 Medium Middle 176
9 3 Medium Rear 128
10 4 Medium Front 137
11 4 Medium Middle 161
12 4 Medium Rear 133
13 5 High Front 129
14 5 High Middle 157
15 5 High Rear 149
16 6 High Front 141
17 6 High Middle 152
18 6 High Rear 137