我有这种数据
Configuration Retail Price month
1 450 Jan
1 520 Feb
1 630 Mar
5 650 Jan
5 320 Feb
5 480 Mar
9 770 Jan
9 180 Feb
9 320 Mar
我希望我的数据看起来像这样
Configuration Jan Feb Mar
1 450 520 630
5 650 320 480
9 770 180 320
答案 0 :(得分:0)
生成一些数据以修补:
data begin;
length Configuration 3 Retail_Price 3 month $3;
input Configuration Retail_Price month;
datalines;
1 450 Jan
1 520 Feb
1 630 Mar
5 650 Jan
5 320 Feb
5 480 Mar
9 770 Jan
9 180 Feb
9 320 Mar
;
run;
在SAS中,一切都必须正确排序。 (或者你可以使用索引,但是那个不同的东西)为此我们使用 PROC SORT 。
proc sort data= begin; by Configuration month; run;
计算总和的方法是使用 PROC MEANS 。
proc means data=begin noprint; /*Noprint is for convienience*/
by Configuration month; /*These are the subsets*/
output out = From_means(drop=_TYPE_ _FREQ_) /*Drops are for ease sake*/
sum(Retail_Price)=
;
run;
此时我们的数据格式很窄。将其转换为宽格式的方法是 PROC TRANSPOSE 。
proc transpose data=From_means out=Wide_format;
by Configuration;
id month;
run;
请记住,还有其他多种方法可以实现相同目标。一种流行的方法是将 PROC SQL 用于几乎所有内容,但根据我的经验,大型数据集最好由SAS proc命令处理..