您好我在SAS中创建图表时遇到问题。我的数据如下: 日期,comp_1,comp_2,comp_3,total_value。我的数据按日期排序。变量comp_表示公司在特定数据中的值。这是我目前的代码:
proc gplot data=dev2.Actionfinal2;
plot (comp_1 comp_2 comp_3)*date
/ overlay areas=3 vaxis=0 to 100000 by 20000;
symbol1 i=join v= cv= ci=red;
symbol2 i=join v= cv= ci=blue;
symbol3 i=join v= cv= ci=green;
run;
quit;
此图表显示了3家公司的价值重叠,但我希望它们堆叠,以便我可以看到每个日期公司的总价值。我是否需要重新格式化我的数据,我可以使用哪个选项?
答案 0 :(得分:3)
您需要使用三个“comp”变量的聚合值创建一个新变量。请参阅this SAS usage note,并举一个很好的例子。这应该让你开始并欢迎来到StackOverflow!
更新:我认为我更好地理解了这个问题:您需要对数据进行非规范化(将列转换为观察值)。所以试试这个:
data test(keep=company value date);
set dev2.Actionfinal2;
company = 1; value = comp_1; output;
company = 2; value = comp_2; output;
company = 3; value = comp_3; output;
run;
proc sort data=test;
by date company;
run;
data test2;
set test;
by date;
if first.date then new_y=0;
new_y + value;
run;
symbol1 i=join v= cv= ci=red;
symbol2 i=join v= cv= ci=blue;
symbol3 i=join v= cv= ci=green;
proc gplot data=test2;
plot new_y*date=company
/ areas=3 vaxis=0 to 100000 by 20000;
run;
quit;