У меня есть набор данных, который состоит из переменной продукта, переменной площади, а затем каждого года за последние 10 лет в качестве отдельной переменной, поэтому всего 12 переменных для набора данных.
Я не могу понять, как отображать данные из одной строки в круговую диаграмму.
Набор данных выглядит так, чтобы его было легче визуализировать:
Product Area year1 year2 year3
1 1 7 14 7
1 2 12 15 11
1 3 5 9 8
2 1 4 12 5
2 2 8 3 14
2 3 5 0 2
3 1 2 12 12
Мой конечный результат состоит в том, чтобы иметь возможность ввести, скажем, продукт 1 и область 3, а затем создать круговую диаграмму, показывающую значения для каждого года. Я не могу понять, как это сделать, мои текущие знания и исследования показывают, что вытягивание из одной строки невозможно?
Затем создайте обычную круговую диаграмму с BY Product Area;
, чтобы иметь одну диаграмму на исходную строку (при условии, что Продукт * Площадь на самом деле является уникальным идентификатором для ваших строк). Я использовал proc gchart
здесь.
*** DEFINE DATA --------------;
data have;
infile datalines dlm=' ';
input Product Area year1 year2 year3;
datalines;
1 1 7 14 7
1 2 12 15 11
1 3 5 9 8
2 1 4 12 5
2 2 8 3 14
2 3 5 0 2
3 1 2 12 12
;run;
*** STACK YEARS --------------;
proc sort data=work.have out=work.tmp0temptableinput;
by product area;
run;
proc sql;
create view work.tt1 as
select src.*, "values" as _eg_idcol_
from work.tmp0temptableinput as src;
quit;
proc transpose data=work.tt1
out=work.tt2
name=year;
by product area;
id _eg_idcol_;
var year:; * THIS IS GENERALISED FOR FOR THAN 3 YEARxx VARIABLES;
run;
proc datasets lib=work nolist;
modify tt2;
label values = ;
label year = ;
label valuedescription = ;
run;
*** PLOT --------------;
proc sort
data=work.tt2
out=work.tt3;
by product area;
run;
proc gchart data =work.tt3;
pie year /
sumvar=values
type=sum
nolegend
slice=outside
percent=none
value=outside
other=4
otherlabel = "other"
coutline=black
noheading
;
by product area;
run; quit;
Спасибо, очень полезно.