#statistics #sas #histogram
Вопрос:
Я хочу использовать код SAS для решения этой проблемы, но я не знаю, как задать свой ввод, так как он задан в виде диапазона. Кроме того, как я могу использовать этот диапазон для построения гистограммы распределения частот. Помогите, пожалуйста. Спасибо!
Ответ №1:
Вы можете ввести его напрямую, datalines
используя a |
в качестве разделителя (мы делаем это, потому что в имени диапазона зарплат есть пробелы). sgplot
построит гистограмму, и freq=count
опция покажет sgplot
, сколько наблюдений приходится на диапазон.
data have;
length salary_range $16.;
infile datalines dlm='|';
input salary_range$ count;
datalines;
25,000 to 29,999|12
30,000 to 34,999|23
35,000 to 39,999|37
40,000 to 44,999|19
45,000 to 49,999|15
50,000 to 54,999|9
;
run;
proc sgplot data=have;
vbar salary_range / freq=count stat=percent;
label salary_range = 'Salary Range';
run;
На практике у вас будут необработанные данные, и вы захотите использовать format
инструкцию для создания своих ячеек. Например:
data have;
do i = 1 to 100;
salary = rand('normal', 35000, 2000);
if(salary < 25000) then salary = 25000;
if(salary > 54999) then salary = 54999;
output;
end;
drop i;
run;
proc format;
value salaryRange
25000 - 29999 = '25,000 to 29,999'
30000 - 34999 = '30,000 to 34,999'
35000 - 39999 = '35,000 to 39,999'
40000 - 44999 = '40,000 to 44,999'
45000 - 49999 = '45,000 to 49,999'
50000 - 54999 = '50,000 to 54,999'
;
run;
proc sgplot data=have;
histogram salary;
label salary = 'Salary Range';
format salary salaryRange.;
run;