SAS libnameでエクセルからデータセット作成し利用

SASのlibnameでエクセルからデータセットを作成し利用するサンプルです。

確認環境
・SAS 9.4 (University Edition)

目次

サンプル libnameでエクセルからデータセットを作成する
  ライブラリのデータセットからWORK配下にデータセットを作成
  ライブラリのデータセットから縦の計算を行う
  ライブラリのデータセットから横の計算を行う

libnameでエクセルからデータセットを作成する

1.エクセルファイルのBook1.xlsxをマイフォルダ配下に配置します。

SAS University Editionでファイルを配置する方法は以下を参照願います。
SAS エクセルを読み込み出力データで確認

 

2.以下のコードを入力します。

libname LIBTEST1 xlsx '/folders/myfolders/sasuser.v94/Book1.xlsx';

runはありません。

 

3.上記コードを実行するとライブラリ配下にデータセットが作成されます。

LIBTEST1がライブラリ名でSHEET1がデータセット名です。
作成されたデータセットはSASを終了しても消えません。
→WORK配下に作成されたデータセットはSASが終了すると消えます。

 

4.SHEET1をダブルクリックすると以下の表が表示されます。

 

ライブラリのデータセットからWORK配下にデータセットを作成

data test1;
	set LIBTEST1.SHEET1;
	if var1 = 'りんご' or  var1 = 'みかん';
run;

1行目は、test1というデータセットをwork配下に出力します(OUT)。
2行目は、読み込むライブラリ名(LIBTEST1)とデータセット名(SHEET1)です(IN)。
3行目は、if文の合致した条件で1行目のデータセットに出力します。

コードを実行すると以下のようにTEST1のデータセットが作成されます。

 

TEST1データセットをダブルクリックするとコードで指定したif文の条件に合致した表が表示されます。

 

ライブラリのデータセットから縦の計算を行う

proc univariate data= libtest1.sheet1;
	var var3;
	output out=test2 sum = sum;
run;

1行目のdata以降は、読み込むライブラリ名(LIBTEST1)とデータセット名(SHEET1)です。
univariateは、3行目のsum(合計)を使用するために必要です。
2行目は、計算対象の列名を指定します。
3行目のoutはworkのtest2データセットを出力します。sumは合計です。

実行すると以下のようにvar3列の5+3+4の結果の12が表示されます。

 

ライブラリのデータセットから横の計算を行う

data test2;
	set libtest1.sheet1;
	goukei = var2 * var3 * 0.1;
run;

1行目は、test2というデータセットをwork配下に出力します。
2行目は、読み込むライブラリ名(LIBTEST1)とデータセット名(SHEET1)です。
3行目は、計算結果の値を変数のgoukeiに代入しています。

実行すると以下のようにvar2列 * var3列 * 0.1の結果が各行の右端に列として追加されます。

関連の記事

SAS エクセルを読み込み出力データで確認

△上に戻る