記述の規則 開始・終了処理 ファイル操作 プログラム制御
データ操作 データベース操作 グラフ操作 マクロ
レポート      
 
DATAステップ
 DATAステップは、外部ファイルをSASデータセットに変換したり、すでにあるデータセットを加工して、別のSASデータセットを作ります。また、DATAステップは、どこにデータが存在するかによって記述が変わります。


  - 1行目のDATA文では,作成,変更するデータセットの名前を指定します。(共通)

  - SETステートメントは、
既存のSASデータセットからの読み込みを指定します。
  - INFILEステートメントは、
外部ファイルからの読み込みを指定します。
  - CARDSステートメントは、プログラムの中に直接データを書き込むときに記述します。
  - INPUTステートメントは、データの読み込みを指定し,読み込んだデータ値を変数に割り当てます。

  - FILEステートメントは、テキストファイルにデータを出力する際に指定します。
  - PUTステートメントは、FILEステートメントと組み合わせることで、データの書き込みを指示します。

      例  data _null_;
          set sample1:
          file 'test.csv';
          put name ',' height ',' weight ',' age ;
       
run;

PROCステップ
  - データベーステーブルをSASのデータセットとして取り込む場合は、PROC SQL を使用します。
  - CSV形式ファイルの入出力に関するプロシジャーも準備されています。
 
Page Index
●CSV形式のファイルを読み、SASデータセットを作成する
●固定長のファイルを読み、SASデータセットを作成する
●MS-ACCESSを読み、SASデータセットを作成する
●複数のSASデータセットを作成する
●ファイル一覧からファイル名を取得する
●カレントディレクトリのパスを取得する
●SASデータセットの存在を確認する
●外部ファイルの存在を確認する
●フォルダを作成、削除する
●複数のSASデータセットを1つにまとめる
●1つのオブザベーションに変数を追加する
●1つのオブザベーションから変数を削除する
●オブザベーションを絞る
●データセットを比較する
●テンポラリデータセットを一括削除する
●Excelファイルへのシートの追加とシートへのデータの追加
●Excelの日付値および日時値の取り込み
●SASデータセットの内容をMS Excel に出力する
●SASデータセットの内容をCSV形式のファイルに出力する
 
本章では、ファイル操作に関するコードサンプルを例示しています。
 
CSV形式のファイルを読み、SASデータセットを作成する ↑ このページの最初へ
【サンプル1】 : DATA文を使用したケース

DATA SASデータセット名;
  INFILE 'パス名+CSVファイル名' DLM=',';
  INPUT name$ address$ ・・・ 変数名n ;
   その他のSASステートメント
RUN;


文字タイプの項目を読み込む場合は、変数名の後に「$マーク」を付けて文字変数であることを宣言します。

【サンプル2】 : PROC文を使用したケース

PROC IMPORT OUT= libref.data
   DATAFILE= "パス名+CSVファイル名"
   DBMS=CSV REPLACE; GETNAMES=YES;
   DATAROW=2;
RUN;


 REPLACEオプションは 出力データセットが存在したら置き換えを行います。
 GETNAMESステートメント 先頭行を変数名として使う場合に「YES」と指定します。
 DATAROWステートメントでデータの開始行を指定します。
 
固定長のファイルを読み、SASデータセットを作成する ↑ このページの最初へ
DATA SASデータセット名
  INFILE 'パス名+CSVファイル名';
  INPUT name$ 1-8 address$ 9-28 ・・・ 変数名n 95-100;
   その他のSASステートメント
RUN;


桁数が揃えて入力されているファイルを読み込む場合は変数名の後ろにカラムを明記します。
 
MS-ACCESSを読み、SASデータセットを作成する ↑ このページの最初へ
PROC SQL;
CONNECT to ODBC
(noprompt="driver=microsoft access driver (*.mdb);dbq=(mdbファイルのパス)");

CREATE TABLE (SASデータセット名) as
SELECT * from connection to odbc
(select * from "(mdbファイルのテーブル名)");

DISCONNECT from ODBC;
QUIT;
 
複数のSASデータセットを作成する ↑ このページの最初へ
DATA SASデータセット名1 SASデータセット名2;
  SET 既存SASデータセット名;
  IF sex = 'M' THEN OUTPUT SASデータセット名1 ;
   ELSE OUTPUT SASデータセット名2 ;
RUN;

既存のSASデータセットをもとに、男性のデータからなるSASデータセット1、女性のデータからなるSASデータセット2を作成します。
 
ファイル一覧からファイル名を取得する ↑ このページの最初へ
Magazines :SAS Technical News Volume4 Number4 の「Q&A」を参照してください

「マクロ実行時にデータセットの情報を動的に入手する」方法は、
Magazines :SAS Technical News Volume5 Number3 の「Q&A」に記載がありますので参照してください
 
カレントディレクトリのパスを取得する ↑ このページの最初へ
SAS社FAQサイト Technical Support Frequently Asked Questions に記載があります
 
SASデータセットの存在を確認する ↑ このページの最初へ
Magazines :SAS Technical News Volume4 Number2 の「Q&A」 または
Magazines :SAS Technical News Summer 2002 の「Q&A」を参照してください
 
外部ファイルの存在を確認する ↑ このページの最初へ
Magazines :SAS Technical News Volume4 Number2 の「Q&A」を参照してください
 
フォルダを作成、削除する ↑ このページの最初へ
フォルダーの作成

OPTIONS NOXWAIT NOXSYNC;
X "md (パス名)";

フォルダーの削除

OPTIONS NOXWAIT NOXSYNC;
X "rd (パス名)";
 
複数のSASデータセットを1つにまとめる ↑ このページの最初へ
DATA file-3;
  SET file-1 file-2;
RUN;


SETステートメントは、元になるSASデータセットを指定するステートメント
この場合、file-1のうしろ(縦)にfile-2のオブザベーションが追加される
file-1
tanka suryo
行1 X1 Y1
行2 X2 Y2
行3 X3 Y3
file-2
tanka suryo
行1 X10 Y10
行2 X20 Y20
行3 X30 Y30
   file-3
tanka suryo
行1 X1 Y1
行2 X2 Y2
行3 X3 Y3
行4 X10 Y10
行5 X20 Y20
行6 X30 Y30
 
1つのオブザベーションに変数を追加する ↑ このページの最初へ
DATA file-2;
  SET file-1;
  total = tanka * suryo;
RUN;


file-1の、tanka、suryoからtotalを計算し、file-2を作成する
file-1
tanka suryo
行1 X1 Y1
行2 X2 Y2
行3 X3 Y3
    file-2
tanka suryo total
行1 X1 Y1 Z1
行2 X2 Y2 Z2
行3 X3 Y3 Z3
「任意の変数の後に変数を追加する」方法は、
Magazines :SAS Technical News Winter 2006 の「Q&A」に記載がありますので参照してください
 
1つのオブザベーションから変数を削除する ↑ このページの最初へ
DATA file-2;
  SET file-1;
  DROP tanka;
RUN;
file-1
tanka suryo
行1 X1 Y1
行2 X2 Y2
行3 X3 Y3
    file-2
suryo
行1 X1
行2 X2
行3 X3
  
オブザベーションを絞る ↑ このページの最初へ
DATA file-2;
  SET .file-1.. (WHERE=(tanka=条件1));
RUN;
 
データセットを比較する ↑ このページの最初へ
PROC COMPARE DATA = file-1 COMP=file2 ALLOBS;
RUN;

変数を絞って比較する場合
PROC COMPARE DATA = file-1 COMP=file2 ALLOBS;
   VAR (変数1) (変数2) 〜;
RUN;
 
Excelファイルへのシートの追加とシートへのデータの追加 ↑ このページの最初へ
SAS社FAQサイト Technical Support Frequently Asked Questions に記載があります
 
テンポラリデータセットを一括削除する ↑ このページの最初へ
Magazines :SAS Technical News Summer 2000 の「Q&A」を参照してください
 
Excelの日付値および日時値の取り込み ↑ このページの最初へ
Magazines :SAS Technical News Spring 2005 の「Q&A」を参照してください
 
SASデータセットの内容をMS Excel に出力する ↑ このページの最初へ
FILENAME exceldde dde "excel | sheet1!r1c1:r3c3" notab;
DATA SASデータセット名;
  SET file-1;
  file exceldde dsd dlm='09'x;
  PUT tanka suryo total;
RUN;

 
  file-1
tanka suryo total
行1 X1 Y1 Z1
行2 X2 Y2 Z2
行3 X3 Y3 Z3
 
「Excel ファイルを出力する際に名前をつける」方法は、

Magazines :SAS Technical News Volume5 Number3 の「Q&A」に記載がありますので参照してください
 
SASデータセットの内容をCSV形式のファイルに出力する ↑ このページの最初へ
PROC EXPORT DATA = SASデータセット名
     OUTFILE= "パス名+CSVファイル名"
     DBMS=CSV REPLACE;
RUN;
 

↑ このページの最初へ

  ご意見・ご感想をお寄せください。info@beagle-hc.com ‖ このサイトについて                                     
  Copyright 2006 - 2009 uTRAM Corp. All Rights Reserved
BEAGLE-HC
HOME くすりのこと 研究開発 個別業務 IT 広報・教育 団体・組織

医薬品・医療機器の研究・開発ポータルサイト
           サイトマップ
 現在位置 : HOME > IT プログラミング > SAS コードライブラリアン(ファイル操作)