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の結果が各行の右端に列として追加されます。
関連の記事