例: DATAステップでのBYグループの処理
例: 単一のBY変数を使用したオブザベーションのグループ化
コード例
次の例は、DATAステップで単一のBY変数zipCodeを使用してデータをグループ化する方法を示しています。入力データセットzipには、通り名、市、州、ZIPコードが含まれます。グループは、BYステートメントで変数zipCodeを指定することによって作成されます。DATAステップでは、同じ値を持つZIPコードをグループに整理します。
data zip;
input zipCode State $ City $ Street $20-29;
datalines;
85730 AZ Tucson Domenic Ln
85730 AZ Tucson Gleeson Pl
33133 FL Miami Rice St
33133 FL Miami Thomas Ave
33133 FL Miami Surrey Dr
33133 FL Miami Trade Ave
33146 FL Miami Nervia St
33146 FL Miami Corsica St
33801 FL Lakeland French Ave
33809 FL Lakeland Egret Dr
;
proc sort data=zip;
by zipCode;
run;
data zip;
set zip;
by zipCode;
run;
proc print data=zip noobs;
title 'BY-Group Uing a Single Variable: ZipCode';
run;
この図は、作成された5つのBYグループを示しています。
単一のBY変数(ZipCode)を使用したBYグループ

要点
|
関連項目
- SORT プロシジャ (Base SASプロシジャガイド)
- DATAステップでのBYグループの処理
例: 複数のBY変数を使用したオブザベーションのグループ化
コード例
次の例は、StateとCityの2つのBY変数を含むzipデータセットを処理した結果を示しています。
data zip;
input State $ City $ Street $13-22 ZipCode ;
datalines;
FL Miami Nervia St 33146
FL Miami Rice St 33133
FL Miami Corsica St 33146
FL Miami Thomas Ave 33133
FL Miami Surrey Dr 33133
FL Miami Trade Ave 33133
FL Lakeland French Ave 33801
FL Lakeland Egret Dr 33809
AZ Tucson Domenic Ln 85730
AZ Tucson Gleeson Pl 85730
;
proc sort data=zip;
by State City;
run;
data zip;
set zip;
by State City;
run;
proc print data=zip noobs;
title 'BY Groups with Multiple BY Variables: State City';
run;
この図には3つのBYグループが示されています。データセットは、読みやすいように左側に出力されたBY変数StateとCityとともに示されています。オブザベーション内のBY変数の位置は、値のグループ化と順序付けの方法には影響しません。
オブザベーションは、アリゾナのオブザベーションが最初に出現するように配置されます。Stateの各値内のオブザベーションは、Cityの値の順に配置されます。各BYグループには、変数StateとCityの値の一意の組み合わせがあります。たとえば、最初のBYグループのBY値はAZ Tucson、2番目のBYグループのBY値はFL Lakelandになります。
複数のBY変数(StateとCity)を持つBYグループ

要点
|
関連項目
- SORT プロシジャ (Base SASプロシジャガイド)
- DATAステップでのBYグループの処理
例: GROUPFORMATと出力形式を使用したBYグループの処理
コード例
この例では、FORMATプロシジャ、GROUPFORMATオプション、およびFORMATステートメントを使用して、単純なデータセットを作成および出力します。入力TESTデータセットは昇順の値で並べ替えられます。NEWTESTデータセットは、変数Scoreのフォーマット値によって配置されます。
options
linesize=80 pagesize=60;
data test;
input name $ Score;
datalines;
Jon 1
Anthony 3
Miguel 3
Joseph 4
Ian 5
Jan 6
;
proc format;
value Range 1-2='Low'
3-4='Medium'
5-6='High';
run;
data newtest;
set test;
by groupformat Score;
format Score Range.;
run;
proc print data=newtest;
title 'Score Categories';
var Name Score;
by Score;
run;
BYステートメントGROUPFORMATオプションを使用したSAS出力

要点
|
関連項目
- BY ステートメント (SAS DATAステップステートメント: リファレンス)
- DATAステップでのBYグループの処理
- FIRST.とLAST.DATAステップ変数
- FORMAT プロシジャ (Base SASプロシジャガイド)