プログラム ensread1.sas の説明
太字が実行される文。コメント文で説明しておくと、後日見るときにわかりやすい。

/* 広告データの読み込み */      OPTIONS ls=80 ps=500;/* 出力のページあたりの桁数と行数 */ /* 計算結果をファイルに出力するように指定 PROC PRINTTO FILE='\ensyu\ensread1.OUT' new log ='\ensyu\log.out' new ; ・指定しなければ画面に出力される。 ・outputウインドウとlogウインドウを別々に。 ・runさせる毎に新しいファイルに書き直すのでnewオプションを指定  (指定しなければ、前のファイルに続けて書き出される)。 */ /* 永久保存データセットを保存するディレクトリを指定する*/ LIBNAME ens "\ensyu\"; /* Dataステップ  読み込んで一時データセットensdat1を作成する */ DATA ensdat1; INFILE 'd:\ensyu\ensdat1.txt' LRECL=3000; /*・読み込むファイルを指定する。  ・ 横に長いファイルなので、レコード長を長めに指定しておく*/ /* 読み込み*/ input SMPNO ORDER EFFIC TYPE RTVMF RTVSS RNEWSP RMAGAZIN FREQ BKIOSK BSHOP BCONVEN BSUPERM BOTHRSHP BBNDMAC BOTHER BNA PTASTE PFRAVER PQUANT PPRICE PBEANS PPOPUL PRARENES PDESIGN PNEWNESS PBENMAC PMKIMAG PBRNDIMG PGOODCM PMUCHCM POTHRES PNOTHING PNA CINVTAQ CINVSITU CNLIKBND CKNOWLD CHEVYUSE CNOMIND CINNOVAT CRECOMND NMAJOR NSUPERJO NSTMARTA NBOSS NNOTHING NNA ITVCM IRADIOCM ITRPROG INPMAGCM INPMAGAT IORICOM IATSHOP IATBNDMC IFRIEND IFAMILY IOTHER IUNKNWN INA EXPERI EMAJOR ESUPERJO ESTMARTA EBOSS ENA PBBRN1 PBBRN2 PBBRN3 PBBRN4 PBBRN5 PBBRN6 PBBRN7 MOSTLIKR SAWCM3 DRNKBRN3 AAMUSE3 APLESUR3 AGENTLE3 AWARMT3 ASURPR3 AIRRITA3 ALONELY3 AFEAR3 AFLBAD3 ADULL3 CCREDBL3 CUNDSTD3 CUSEFUL3 CDANCE3 CENVY3 CNORLVN3 CDSBRND3 CBRNNAM3 CBRNCHR3 CDESCRM3 CGDCHAR3 CGDSCEN3 CGDMUSC3 CGDNART3 ALIKECM3 AGOODCM3 BTASTE3 BFRAVER3 BDESIGN3 ALIKBRN3 AGDBRN3 APURPRB3 SAWCM7 DRNKBRN7 AAMUSE7 APLESUR7 AGENTLE7 AWARMT7 ASURPR7 AIRRITA7 ALONELY7 AFEAR7 AFLBAD7 ADULL7 CCREDBL7 CUNDSTD7 CUSEFUL7 CDANCE7 CENVY7 CNORLVN7 CDSBRND7 CBRNNAM7 CBRNCHR7 CDESCRM7 CGDCHAR7 CGDSCEN7 CGDMUSC7 CGDNART7 ALIKECM7 AGOODCM7 BTASTE7 BFRAVER7 BDESIGN7 ALIKBRN7 AGDBRN7 APURPRB7 AGE SEX PROFES LPARENTS LBRTSIS LGRNMAFA LHASWIFE LCHILD LFRIENDS LOTHER LALONE LNA LSCIRCLE LSVOLUNT LSMFREND LSMFRCOM CSSINV CINFSEK CMKNWL CINTTEL CINFASK CINFMAV CINNOVA ESTNEWB ESTNEWP EFRNCM15 ENFOLD16 EINFS17 EINDEP18 ESTFTP19 ESTFCM20 ENINFS21 RSKAV1 RSKAV2 RSKAV3 RECCM1 RECCM2 RECCM3 RECCM4 RECCM5 RECCM6 RECCM7 BLIKCMR BLIKBNR BINPBNR ; /*・スペースで区切られた自由書式なので書式を指定せず、 変数名をならべるだけ。 ・行の終わりには「;」が必要。 */ /* 尺度評定質問について、わかりやすいように逆転する。 */ CINVTAQ=6- CINVTAQ; CINVSITU =6- CINVSITU ; CNLIKBND =6- CNLIKBND ; CKNOWLD =6- CKNOWLD ; CHEVYUSE =6- CHEVYUSE ; CNOMIND =6- CNOMIND ; CINNOVAT =6- CINNOVAT ; CRECOMND =6- CRECOMND ; PBBRN1 =8- PBBRN1 ; PBBRN2 =8- PBBRN2 ; PBBRN3 =8- PBBRN3 ; PBBRN4 =8- PBBRN4 ; PBBRN5 =8- PBBRN5 ; PBBRN6 =8- PBBRN6 ; PBBRN7 =8- PBBRN7 ; LSCIRCLE=6- LSCIRCLE; LSVOLUNT =6- LSVOLUNT ; LSMFREND =6- LSMFREND ; LSMFRCOM =6- LSMFRCOM ; CSSINV =6- CSSINV ; CINFSEK =6- CINFSEK ; CMKNWL =6- CMKNWL ; CINTTEL =6- CINTTEL ; CINFASK =6- CINFASK ; CINFMAV =6- CINFMAV ; CINNOVA =6- CINNOVA ; /* フリーダムCMへの反応 */ /* ネスカフェCMへの反応 */ AAMUSE3 =6- AAMUSE3 ; AAMUSE7 =6- AAMUSE7 ; APLESUR3 =6- APLESUR3 ; APLESUR7 =6- APLESUR7 ; AGENTLE3 =6- AGENTLE3 ; AGENTLE7 =6- AGENTLE7 ; AWARMT3 =6- AWARMT3 ; AWARMT7 =6- AWARMT7 ; ASURPR3 =6- ASURPR3 ; ASURPR7 =6- ASURPR7 ; AIRRITA3 =6- AIRRITA3 ; AIRRITA7 =6- AIRRITA7 ; ALONELY3 =6- ALONELY3 ; ALONELY7 =6- ALONELY7 ; AFEAR3 =6- AFEAR3 ; AFEAR7 =6- AFEAR7 ; AFLBAD3 =6- AFLBAD3 ; AFLBAD7 =6- AFLBAD7 ; ADULL3 =6- ADULL3 ; ADULL7 =6- ADULL7 ; CCREDBL3 =6- CCREDBL3 ; CCREDBL7 =6- CCREDBL7 ; CUNDSTD3 =6- CUNDSTD3 ; CUNDSTD7 =6- CUNDSTD7 ; CUSEFUL3 =6- CUSEFUL3 ; CUSEFUL7 =6- CUSEFUL7 ; CDANCE3 =6- CDANCE3 ; CDANCE7 =6- CDANCE7 ; CENVY3 =6- CENVY3 ; CENVY7 =6- CENVY7 ; CNORLVN3 =6- CNORLVN3 ; CNORLVN7 =6- CNORLVN7 ; CDSBRND3 =6- CDSBRND3 ; CDSBRND7 =6- CDSBRND7 ; CBRNNAM3 =6- CBRNNAM3 ; CBRNNAM7 =6- CBRNNAM7 ; CBRNCHR3 =6- CBRNCHR3 ; CBRNCHR7 =6- CBRNCHR7 ; CDESCRM3 =6- CDESCRM3 ; CDESCRM7 =6- CDESCRM7 ; CGDCHAR3 =6- CGDCHAR3 ; CGDCHAR7 =6- CGDCHAR7 ; CGDSCEN3 =6- CGDSCEN3 ; CGDSCEN7 =6- CGDSCEN7 ; CGDMUSC3 =6- CGDMUSC3 ; CGDMUSC7 =6- CGDMUSC7 ; CGDNART3 =6- CGDNART3 ; CGDNART7 =6- CGDNART7 ; ALIKECM3 =8- ALIKECM3 ; ALIKECM7 =8- ALIKECM7 ; AGOODCM3 =8- AGOODCM3 ; AGOODCM7 =8- AGOODCM7 ; BTASTE3 =6- BTASTE3 ; BTASTE7 =6- BTASTE7 ; BFRAVER3 =6- BFRAVER3 ; BFRAVER7 =6- BFRAVER7 ; BDESIGN3 =6- BDESIGN3 ; BDESIGN7 =6- BDESIGN7 ; ALIKBRN3 =8- ALIKBRN3 ; ALIKBRN7 =8- ALIKBRN7 ; AGDBRN3 =8- AGDBRN3 ; AGDBRN7 =8- AGDBRN7 ; APURPRB3 =8- APURPRB3 ; APURPRB7 =8- APURPRB7 ; /* 読み込まれたどうかを確認するために出力してみる */ proc print; var SMPNO ORDER EFFIC TYPE BLIKCMR BLIKBNR BINPBNR; /* ・data=でデータセットを指定しなければ、 直近に作成されたデータセットが用いられる ・すべてを書き出すと巨大になるので、一部の変数のみ。 ・変数名を指定しなければすべての変数が出力される  */ /* 記述統計量を算出 */ proc means; /*・ノンメトリックなデータも含めて、すべての変数について算出。 分析のためではなくて、最大、最小値が出力されるので、 入力ミスをチェックできるから。 */ /*無効サンプルを削除して永久データセットを作成する*/ DATA ens.ensdat1; set ensdat1; /*永久データセットを作成するために保存するディレクトリを指定する*/ /* 無効サンプルは削除する   あとの分析で利用する評定尺度質問に一つでも欠損があるサンプルを削除*/ dum= LSCIRCLE+LSVOLUNT+LSMFREND+LSMFRCOM+ CSSINV+CINFSEK+CMKNWL+CINTTEL+CINFASK+CINFMAV+CINNOVA+ AAMUSE3+APLESUR3+AGENTLE3+AWARMT3+ASURPR3+AIRRITA3+ ALONELY3+AFEAR3+AFLBAD3+ADULL3+ CCREDBL3+CUNDSTD3+CUSEFUL3+CDANCE3+CENVY3+CNORLVN3+CDSBRND3+ CBRNNAM3+CBRNCHR3+CDESCRM3+CGDCHAR3+CGDSCEN3+CGDMUSC3+CGDNART3+ ALIKECM3+AGOODCM3+BTASTE3+BFRAVER3+BDESIGN3+ALIKBRN3+AGDBRN3+APURPRB3+ AAMUSE7+APLESUR7+AGENTLE7+AWARMT7+ASURPR7+AIRRITA7+ALONELY7+ AFEAR7+AFLBAD7+ADULL7+ CCREDBL7+CUNDSTD7+CUSEFUL7+CDANCE7+CENVY7+CNORLVN7+CDSBRND7+ CBRNNAM7+CBRNCHR7+CDESCRM7+CGDCHAR7+CGDSCEN7+CGDMUSC7+CGDNART7+ ALIKECM7+AGOODCM7+BTASTE7+BFRAVER7+BDESIGN7+ALIKBRN7+AGDBRN7+APURPRB7; if dum=. then delete; proc print data=ens.ensdat1; var SMPNO ORDER EFFIC TYPE BLIKCMR BLIKBNR BINPBNR; run; /*SASは次のprocに入った段階で、前のprocを実行する。 最後のprocを実行させるためには最後にrunコマンドをかいておく必要がある。 */
このプログラムで使われている主なコマンドリスト
太字はよく使う重要なもの。



DATAステップに関するもの。


  • LIBNAME SASルート名 ディレクトリ名
  • DATA データセット名
  • INFILE ファイル名
  • input 変数名
  • set sasデータセット名
  • if 条件文 then 実行文;

  • その他のコマンド


  • OPTIONS
  • PROC PRINTTO
  • proc print data=データセット名;
  • proc means data=データセット名;