/*
tec00_02.sas Verby K.T. 2000/11/21(火)12:36:56
org. hizo9701.SAS by K.T. Ver1.1 1997/10/15(水)11:40:06
SASとEXCELでデータ交換をする
注意1 EXCELを起動してから実行すること。
(さらに「EXCELシートの内容をSASへ引き渡すサンプル1,2」 を
実行するには事前にtec00_02.xlsをEXCELに読込んでおくこと)
注意2 bookを指定しないと,カレントのbook(通常はBook1)が指定された
ことになる。book名を指定する方法は,
「EXCELシートの内容をSASへ引き渡すサンプル1」
を参照のこと。;
注意3 (該当するbookの) sheet が(削除をした等で)存在していないと,
何も生じないかエラーになる。
*/
* --------------------------------- ;
* SAS出力をEXCELへ引き渡すサンプル1 ;
* --------------------------------- ;
*もっとも単純な例;
FILENAME d1 DDE 'EXCEL|SHEET1!R1C1:R6C3';
DATA d1;
FILE d1;
PUT 'ID' ' SEX' ' HEIGHT';
PUT '01' ' F ' '150 ';
PUT '02' ' F ' '155 ';
PUT '03' ' M ' '160 ';
PUT '04' ' M ' '165 ';
PUT '05' ' M ' '170 ';
RUN;
* --------------------------------- ;
* SAS出力をEXCELへ引き渡すサンプル2 ;
* --------------------------------- ;
* SASプログラミングガイド('97版)の付録(norm2.sas)参照 ;
* EXCELのSHEET2の1行目から100行目まで,1列目から50列目まで指定 ;
* (実際に使用するより大き目に指定しておけば良い) ;
FILENAME d2 DDE 'EXCEL|SHEET2!R1C1:R100C50';
DATA d2;
FILE d2;
z=0; n=0;
PUT 'Z表 '@ ; *縦横見出しの交点の空白部分;
DO i = 0 to 9 BY 1; PUT i @; END; PUT; *横見出し;
DO z = 0 TO 3.0 BY 0.1;
PUT z @; *縦見出し;
DO i = 0 to 9 BY 1;
n = PROBNORM(Z+i/100)-0.5;
PUT n @; *数値表本体;
END; PUT;
END;
RUN;
* --------------------------------- ;
* SAS出力をEXCELへ引き渡すサンプル3 ;
* --------------------------------- ;
*欠損値や空白を含む文字データを送る場合;
*book1を指定したことに注意;
* EXCELのBOOK1のSHEET3の1行目から2行目まで,1列目から3列目まで指定 ;
FILENAME d3 DDE 'EXCEL|SHEET3!R1C1:R2C3';
DATA d3;
FILE d3 NOTAB; * NOTABが重要 ;
miss=.;
misschar=' ';
text='toyomura Kazuma';
tb='09'x; *TAB コード;
PUT miss tb misschar tb text; * TAB 区切りにして出力
RUN;
* ----------------------------------------- ;
* EXCELシートの内容をSASへ引き渡すサンプル1 ;
* ----------------------------------------- ;
*もっとも単純な例;
FILENAME d4 DDE 'EXCEL|[hizo9701.xls]SHEET4!R2C1:R6C3';
DATA d4;
INFILE d4 ;
INPUT ID$ sex$ height;
RUN;
PROC PRINT;
RUN;
* ----------------------------------------- ;
* EXCELシートの内容をSASへ引き渡すサンプル2 ;
* ----------------------------------------- ;
*欠損値や空白を含む文字データを送る場合;
FILENAME d5 DDE 'EXCEL|[hizo9701.xls]SHEET5!R2C1:R6C3';
DATA d5;
INFILE d5 DLM='09'x NOTAB DSD MISSOVER ;
INPUT ID$ sex$ height;
LABEL ID='ID' sex='性別' height='身長';
RUN;
PROC PRINT LABEL;
RUN;
ENDSAS;
* FILENAME d1 DDE 'EXCEL|SHEET1!R1C1:R100C50' TIMEOUT=-1; *制限時間解除;
戻る
進む
ホームページへ
mailto: toyomura@hokusei.ac.jp
home page: http://www.ipc.hokusei.ac.jp/~z00105/index.html