Вы можете использовать литералы имен для указания имен, которые не соответствуют обычным правилам, например '1950-1959'n
. Убедитесь, что для параметра VALIDVARNAME установлено значение ANY, чтобы SAS разрешил нестандартные имена. Вы можете использовать стандартные имена для переменных и использовать метку для хранения этого описания.
input AgeGroup :$5. period1-period6 ;
label period1 = '1950-1959' period2 = '1960-1969' ....
Вероятно, было бы более полезно сохранить период времени в переменной.
data data1;
length AgeGroup $5 Period $9 count 8;
input AgeGroup @;
do period='1950-1959','1960-1969','1970-1979','1980-1989','1990-1992','Total';
input count @;
output;
end;
datalines;
20-29 1919 1808 1990 2175 154 8046
30-39 2616 4585 6580 6843 1921 22545
40-49 705 2661 5027 6597 1812 16802
50-59 38 680 2562 4836 2127 10243
60-69 0 35 606 2314 831 3786
70-79 0 0 23 467 494 984
80-89 0 0 0 12 31 43
Total 5278 9769 16788 23244 7370 62449
;
В этой структуре вы можете более легко фильтровать данные для подмножества времени периоды. Но вы все равно можете легко создать отчет, который отображает данные в этом табличном формате.
proc report data=data1;
columns agegroup count,period ;
define agegroup / group ;
define period / across ' ';
define count / ' ';
run;
Результаты:
AgeGr
oup 1950-1959 1960-1969 1970-1979 1980-1989 1990-1992 Total
20-29 1919 1808 1990 2175 154 8046
30-39 2616 4585 6580 6843 1921 22545
40-49 705 2661 5027 6597 1812 16802
50-59 38 680 2562 4836 2127 10243
60-69 0 35 606 2314 831 3786
70-79 0 0 23 467 494 984
80-89 0 0 0 12 31 43
Total 5278 9769 16788 23244 7370 62449