1

データを 3 分の 1 に分割することに関心がありますが、州ごとの集計表しかありません。具体的には、州ごとの入学者数を推定しました。すべての入学者数の上位 3 分の 1 を構成する州を計算したいと思います。したがって、上位 3 分の 1 には、少なくとも合計累積パーセンテージ .33333... が含まれている必要があります。

.33333 から .40000 の間の累積パーセンテージを指定するさまざまな方法を試しましたが、一般的なケースを指定することに成功しませんでした。 PROC RANKデータが頻度表として整理されているため、使用することもできません...

以下にいくつかのダミーの (しかし代表的な) データを含めました。


data state_counts;
input state $20.  enrollment;
cards;
CALIFORNIA                   440233
TEXAS                        318921
NEW YORK                     224867
FLORIDA                      181517
ILLINOIS                     162664
PENNSYLVANIA                 155958
OHIO                         141083
MICHIGAN                     124051
NEW JERSEY                   117131
GEORGIA                      104351
NORTH CAROLINA               102466
VIRGINIA                      93154
MASSACHUSETTS                 80688
INDIANA                       75784
WASHINGTON                    73764
MISSOURI                      73083
MARYLAND                      73029
WISCONSIN                     72443
TENNESSEE                     71702
ARIZONA                       69662
MINNESOTA                     66470
COLORADO                      58274
ALABAMA                       54453
LOUISIANA                     50344
KENTUCKY                      49595
CONNECTICUT                   47113
SOUTH CAROLINA                46155
OKLAHOMA                      43428
OREGON                        42039
IOWA                          38229
UTAH                          36476
KANSAS                        36469
MISSISSIPPI                   33085
ARKANSAS                      32533
NEVADA                        27545
NEBRASKA                      24571
NEW MEXICO                    22485
WEST VIRGINIA                 21149
IDAHO                         20596
NEW HAMPSHIRE                 19121
MAINE                         18213
HAWAII                        16304
RHODE ISLAND                  13802
DELAWARE                      12025
MONTANA                       11661
SOUTH DAKOTA                  11111
VERMONT                       10082
ALASKA                         9770
NORTH DAKOTA                   9614
WYOMING                        7457
DIST OF COLUMBIA               6487
;
run;

*****  calculating the cumulative frequencies by hand  ;


proc sql;
    create table dummy_3 as
        select

            state,
            enrollment,
            sum(enrollment) as total_enroll,
            enrollment / calculated total_enroll as percent_total

    from    state_counts

    order by percent_total desc ;
quit;    



data dummy_4; set dummy_3;
if first.percent_total then cum_percent = 0;
cum_percent + percent_total;
run;

の値に基づくと、cum_percent登録者の上位 3 分の 1 を構成する州は、カリフォルニア、テキサス、ニューヨーク、フロリダ、およびイリノイです。

これをプログラムで行う方法はありますか?最終的には、状態を選択するためのフラグ変数を指定したいと考えています。

ありがとう...

4

3 に答える 3

1

PROC FREQ と WEIGHT ステートメントを使用してパーセンテージを簡単にカウントし、LAG 関数を使用して最初の 3 分の 1 を選択できます。

proc freq data=state_counts noprint order=data;
   tables state / out=state_counts2;
   weight enrollment;
run;

data top3rd;
   set state_counts2;
   cum_percent+percent;
   if lag(cum_percent)<100/3 then top_third=1;
run;
于 2013-12-30T22:03:02.397 に答える