我正在处理一些州级数据,并希望在该州数据内创建一个集体“美国”级别。我有每个州大约 10 年的数据,并且希望保留变量“美国”级别的格式。有一个简单的方法可以做到这一点吗?我将在下面附上一些示例数据。
data test;
input State$ year count1 count2;
datalines;
MA 2010 33 34
MA 2011 54 32
MA 2012 45 43
MA 2013 49 50
LA 2010 29 29
LA 2011 32 34
LA 2012 34 44
LA 2013 44 45
WV 2010 33 34
WV 2011 34 37
WV 2012 44 43
WV 2013 33 35
;
run;
这是我希望的数据:
data test_2;
input State$ year count1 count2;
datalines;
MA 2010 33 34
MA 2011 54 32
MA 2012 45 43
MA 2013 49 50
LA 2010 29 29
LA 2011 32 34
LA 2012 34 44
LA 2013 44 45
WV 2010 33 34
WV 2011 34 37
WV 2012 44 43
WV 2013 33 35
USA 2010 95 97
USA 2011 120 103
USA 2012 121 130
USA 2013 126 130
;
run;
使用数据步骤:
proc sort data=test out=want;
by year;
run;
* Calculate USA totals;
data want;
set want;
by year;
total1 + count1;
total2 + count2;
if last.year then do;
count1 = total1;
count2 = total2;
state = 'USA';
output;
total1 = 0;
total2 = 0;
end;
drop total:;
run;
* Add USA totals to the end of the data;
data want;
set test want;
run;
Obs State year count1 count2
1 MA 2010 33 34
2 MA 2011 54 32
3 MA 2012 45 43
4 MA 2013 49 50
5 LA 2010 29 29
6 LA 2011 32 34
7 LA 2012 34 44
8 LA 2013 44 45
9 WV 2010 33 34
10 WV 2011 34 37
11 WV 2012 44 43
12 WV 2013 33 35
13 USA 2010 95 97
14 USA 2011 120 103
15 USA 2012 123 130
16 USA 2013 126 130