首页 > 解决方案 > SAS-如何将列的值转换为新变量名?

问题描述

我有一个看起来像这样的数据集

ID   Model_Value Count_Model
111      24          2
222      12          9
234      88          6
111      88          8
222      24          10
222      88          17

我希望它看起来像这样:

ID   Model_12 Model_24 Model_88
111      0       2       8
222      9       10      17
234      0       0       6

我不认为我在网上搜索正确的术语,我认为最初转换可能有效,但我仍然希望该行代表 ID 而不是模型。谁能指出我正确的方向?我该如何从我拥有的东西中创建这个输出?

感谢您提供任何帮助!

标签: sasformattingtransformtransformationtranspose

解决方案


好的,我相信就是这样!谢谢@mjsqu !!我能够在此链接的帮助下做到这一点:http: //www.sascommunity.org/mwiki/images/d/dd/PROC_Transpose_slides.pdf

data test_transpose ;
input @1  ID_P  @6 Model_Value @18 Count_Model ;
cards;
111  24          2
222  12          9
234  88          6
111  88          8
222  24          10
222  88          17
run;
proc print data=test_transpose;
run;
proc sort data=test_transpose out=test_transpose_S;
    By ID_P;
run;

proc transpose
 data = test_transpose_S 
 out = test_transpose_result (drop=_name_)
 prefix=Model_Value;
 var Count_Model;
 BY ID_P;
 id Model_Value;
run;
proc print data=test_transpose_result ;
run;

原始排序数据集的输出和转置! 在此处输入图像描述


推荐阅读