このページは、平成11年6月8日に開設した。
このページは、令和2年5月8日に一部更新した。
data ステップには、どこにデータが存在するかによって次の3種の形式に分けられる:
これらについて順に説明すると、次のようになる。
data sas/ds 名; infile '外部ファイル名'; input 変数名 書式 変数名 書式 ...; その他の sas 文; run; |
data sas/ds 名; input 変数名 書式 変数名 書式 ...; その他の sas 文; cards; データ行 ; |
data sas/ds 名;
set(または merge または update)sas/ds 名; その他の sas 文; run; |
data ステップで用いられる文には、この節だけでも既に data 文、infile 文、 input 文、set 文などが出てきたが、その他にもたくさん用意されている。
最初の sas プログラムの例は、上述の3種の形式の中の第1の形式を用いた 例である。この場合、ファイル名からわかるように、パソコンで sas を実行する 場合であり、さらにデータはフロッピーに保存されているものを呼び出すことに なる:
*------------------------------------------* | June 22, 1999 | sas program--sasfile.exam4- | example 4 of sasprograms for making a sas permanent file. | It is a set of miller lyer illusion data by a completely rando- | mized design with four levels (CR-4) for 34 samples. In this | case it is also an unbalanced design. | | file name: a:¥sasprog¥sasfile.ex4 | *-------------------------------------------*; filename cr4emp 'b:¥p70001av'; libname sasfile 'a:¥sasset'; options pagesize=60; data sasfile.cr4mill; infile cr4emp; input noss 2. +1 level 1. +1 pse 2.; label noss='sample number' level='level of angle of inward arrow' pse='point of subjective eqality in cm'; run; libname library 'a:¥sasset¥format'; proc format library=library; value lvlfmt 1='15 degree' 2='22.5 degree' 3='30 degree' 4='60 degree'; run; proc print data=sasfile.cr4mill n; title 'miller lyer empirical data by CR-4 for 34 subjects'; run; |
次の sas プログラムは、上述の data ステップの3種の形式の中の第2の形式 を用いた例を示す。ただし、ここでの sas/ds(sas データセット)は、前節で述べた 永久 sas データセットである。なぜならば、データセット名はピリオドで挟まれた 2レベルで定義しているから:
*----------------------------------------* | June 8, 1999 | sas program --perm_ex1.sas -- | example 1 of sas programs for making sas permanent file | | file name: $HOME/sasprog/perm_ex1.sas | *----------------------------------------*; libname sasset '$HOME/permfile'; data sasset.grad; input noss 2. gradth 3. (achiev1-achiev3) (3.); label noss='sample number' gradth='mark on the graduation thesis' achiev1='average mark in grade 1' achiev2='average mark in grade 2' achiev3='average mark in grade 3'; cards; 1 85 65 73 83 2 84 68 80 87 3 84 77 77 83 4 84 78 72 82 5 84 72 76 80 6 80 65 59 79 7 80 57 66 78 8 78 64 62 72 9 75 68 67 77 10 75 68 68 70 11 70 61 60 70 12 68 61 58 66 13 65 56 59 62 ; options pagesize=60; proc print data=sasset.grad n; title 'data on the determinants of graduation thesis marks'; run; |
これに対して、つぎの sas プログラムの例は、やはり第2の形式を用いた例では あるが、sas/ds 名は、1レベルで定義されていることに注意したい。この場合、 sas/ds は一時 sas ファイルとみなされ、sas セッションが終了すると消えてしま うことに注意せよ:
*------------------------------------------* | March 20, 1998 | sas program--glm_ex1.sas -- | example 1 of sasprograms for glm procedure, especially | a type of the randomized block design with repeated measures. | The data is that of Table 6.2-1 (p.244) of Kirk (1982). | | file name: $HOME/sasprog/glm_ex1.sas | *------------------------------------------*; data Kirk244; input no 1. (a1-a4) (3.); label no='sample number' a1='level 1 of treatment A' a2='level 2 of treatment A' a3='level 3 of treatment A' a4='level 4 of treatment A'; cards; 1 3 4 7 7 2 6 5 8 8 3 3 4 7 9 4 3 3 6 8 5 1 2 5 10 6 2 3 6 10 7 2 4 5 9 8 2 3 6 11 ; options pagesize=60; title 'the sas glm procedure for repeated measures RB-I design'; proc glm data=Kirk244; model a1-a4= / nouni; repeated treat 4 contrast(1) / summary printe printm; run; |