SASで変数を作ろう
SASで変数を作ろう
SASの構文の順番はdataステップ→procステップという順番で実行されます。つまりデータを読み込んだり、設定したり変数を作ったりといった処理をして統計処理をしています。
なので変数を作るという作業はdataステップで行います。
SASにおける変数とはデータの数値や記号についているラベルです。例えば男子女子といった性別、入力された数値がなにを示しているかなどです。
ここでは変数を作ろう、ということでinput文でラベルをつけた変数を利用して新しい変数を作ることです。様々な方法で変数を作成することができるのでいくつか例題を紹介します。
変数というとちょっとでもほかのプログラムを触っている人にはもしかすると面倒くさいと思うかもしれませんがSASにおける変数の扱いは簡単な作業でできます。
例題1 算術演算
問題・・・4つの三角形の底辺と高さを測定しました。それぞれの面積を求めなさい。
それぞれの底辺と高さは以下の通りです。
三角形A・・・底辺4cm高さ5cm
三角形B・・・底辺2cm高さ9cm
三角形C・・・底辺2cm高さ3cm
三角形D・・・底辺7cm高さ4cm
(三角形の面積の求め方は底辺×高さ÷2)
data sankaku;
input id $ teihen takasa;
menseki=teihen*takasa/2;
cards;
a 4 5
b 2 9
c 2 3
d 7 4
;
proc print;
run;
実行すると変数の「menseki」が作成され、各三角形の面積が表示されていると思います。
例題2 条件式
問題・・・英語のテストの点数が60点未満の生徒は成績を不可にしなさい。また60点以上は合格にしなさい。
それぞれのテストの結果は以下の通りです。
A君・・・67点
B君・・・39点
Cさん・・・55点
Dさん・・・94点
data eigo;
input id $ tokuten;
if tokuten < 60 then seiseki='fuka';
else seiseki='goukaku';
cards;
a 67
b 39
c 55
d 94
;
proc print;
run;
実行すると「seiseki」という変数が作成され「fuka」「goukaku」と振り分けられていると思います。
例題3 心理学(質問紙)でよくあるパターン
逆転項目の処理・・・以下のような日常の充実感を調査する質問紙があるとする(適当につくりました)。
1.今幸せを感じている
2.今生活が楽しいと感じている
3.今疲れていると感じている
回答は1が全然感じていない、2が少し感じていない、3が少し感じている、4がとても感じている、という4件法で回答を求める。この合計点数で充実感の調査する。
点数が高いと充実してるということだが、問い3のみ得点が高いと逆の意味になる。なのでデータステップで得点を逆にする必要があります。
逆転項目の処理は回答の(最少得点+最大得点)-質問項目となります。今回は4件法で最小得点が1、最大得点が4となりますので5となり逆転項目の得点を引くと逆転した数値がでます。
data gyakuten;
input id $ q1 q2 q3;
q3=5-q3;
cards;
001 2 3 4
002 3 2 2
003 4 4 1
004 3 3 2
;
proc print;
run;
実行するとq3の得点が逆転して表示されます。
基本はこんな感じです。