【发布时间】:2016-12-16 18:36:05
【问题描述】:
我正在做 SAS Programming 2 教科书中的练习。
我正在尝试转换此数据:
Narrow Data set 对于这样的广泛数据集:
Wide Data Set 我还应该在我的数据步骤中有一个数组,并且只输出变量 customer_id 和 month1 到 month12。
我的代码如下:
Data customer_orders(keep=Customer_ID month1-month12);
set orion.order_summary;
by customer_id;
array month{12} month1-month12;
do i= 1 to 12;
if order_month = i then
month{i}= sale_amt;
end;
run;
proc print data=customer_orders;
run;
我在运行此代码时遇到的问题是,观察结果并未在一次观察中显示 customer_id 的所有 sale_amt 值,而是跳到下一行以显示在观察中找到的第二个值。
任何帮助将不胜感激。
注意:我不允许发布另一个指向我的输出的链接。
【问题讨论】:
-
您需要使用 RETAIN 来跨行保留变量。否则,在每一行上,数组变量都设置为缺失。您还需要一个显式的 OUTPUT 语句。
标签: database-design sas data-analysis