В SAS , выполняющий что-либо для каждой концепции , обычно обслуживается с помощью оператора BY
.Proc выполнит ожидаемые вами операции и автоматически обработает данные по группам в соответствии с различными значениями переменной by (s)!
Этот пример демонстрирует, как значение переменной by
может быть помещено вназвание сюжета (#byval1
), а также подавление подписи по умолчанию (nobyline
), в которой в качестве подзаголовка будет отображаться person = name .Оператор BY PERSON
с необязательным аргументом NOTSORTED
означает, что строки группы будут сформированы построчно из смежного значения смежности , что позволяет обработке by
работать без ошибокдаже если данные не отсортированы по Person
.Для более безопасной работы предварительно отсортируйте или индексируйте данные, заданные переменными by.
data have; infile datalines dlm='|';
input
Person $ Date: date11. QTY Brand $;
format date date9.;
datalines;
Jim | 01-Aug-2015 | 20 | Pepsi
Jim | 01-Aug-2015 | 20 | Coke
Jim | 01-Oct-2016 | 30 | Pepsi
Jim | 01-Nov-2016 | 40 | Sprit
Susan | 01-Sep-2015 | 20 | Dr.Pepper
Susan | 01-Dec-2016 | 10 | Sprit
Helen | 01-Jan-2016 | 20 | Coke
Helen | 01-Feb-2016 | 30 | Pepsi
run;
title "Scatter for #BYVAL1";
options nobyline;
proc sgplot data=have;
by person notsorted;
scatter x=date y=qty / group = brand;
xaxis interval=month;
format date monyy7.;
run;
options byline;
title;
people Jim
Susan
Helen
не в порядке сортировки, поэтому, если опция NOTSORTED
была оставленаможет появиться сообщение об ошибке и, возможно, какой-то неполный вывод.