データを 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 を構成する州は、カリフォルニア、テキサス、ニューヨーク、フロリダ、およびイリノイです。
これをプログラムで行う方法はありますか?最終的には、状態を選択するためのフラグ変数を指定したいと考えています。
ありがとう...