在 SAS 中按年份添加变量

问题描述 投票:0回答:1

我正在处理一些州级数据,并希望在该州数据内创建一个集体“美国”级别。我有每个州大约 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;
sas levels
1个回答
0
投票

使用数据步骤:

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                             
© www.soinside.com 2019 - 2024. All rights reserved.