/* retain */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=2222;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2; set data1;
retain Id4 0;
Id4 = Id4 + Id3;
run;


- retainにより、Id4に初期値0を設定できる。
- Id4 = Id4 + Id3によりレコードの数値を足すことができる。
/* retain null */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=.;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2; set data1;
retain Id4 0;
Id4 = Id4 + Id3;
run;


- retainにより、Id4に初期値0を設定できる。
- Id4 = Id4 + Id3によりレコードの数値を足すことができる。
- nullは正しく計算されない。
/* Id4 + Id3; */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=2222;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2; set data1;
Id4 + Id3;
run;


- Id4 = Id4 + Id3とほぼ同じ動き。
- Id4 + Id3によりレコードの数値を足すことができる。
- 最初のId4には0が設定される。(?)
/* Id4 + Id3; null */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=.;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2; set data1;
Id4 + Id3;
run;


- Id4 = Id4 + Id3とほぼ同じ動き。
- Id4 + Id3によりレコードの数値を足すことができる。
- 最初のId4には0が設定される。(?)
- nullが有っても正しく計算される。
/* Id4 = Id4 + Id3 */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=2222;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2; set data1;
Id4 = Id4 + Id3;
run;


- Id4 = Id4 + Id3でレコードの数値を足そうとしている。
- Id4の初期値はnull(?)
- nullがあると正しく計算されない。
/* Id4 = Id4 + Id3; null */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=.;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2; set data1;
Id4 = Id4 + Id3;
run;


- Id4 = Id4 + Id3でレコードの数値を足そうとしている。
- Id4の初期値はnull(?)
- nullがあると正しく計算されない。
/* retain Id4 + Id3; */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=2222;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2; set data1;
retain Id4 0;
Id4 + Id3;
run;


- Id4に初期値0を設定。
- Id4 + Id3によりレコードの数値を足すことができる。
- Id4 = Id4 + Id3とほぼ同じ動き。
/* retain Id4 + Id3 null */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=.;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2; set data1;
retain Id4 0;
Id4 + Id3;
run;


- Id4に初期値0を設定。
- Id4 + Id3によりレコードの数値を足すことができる。
- Id4 = Id4 + Id3とほぼ同じ動き。
- nullが有っても正しく計算される。
/* retain 1 */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=2222;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2; set data1;
retain Id4 1;
Id4 = Id4 + Id3;
run;


- retainにより、Id4に初期値1を設定。
- Id4 = Id4 + Id3によりレコードの数値を足すことができる。