【SAS言語】データセットの編集方法

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • SAS実行環境でデータセットを編集するための基本操作方法が知りたい。
目次

【事前準備】SAS環境にデータセット読込

SAS環境でCSVファイルを事前に読み込みます。

サンプルファイルとしてproduct_data.csvを準備していますため、ご自由にお使いください。

コード

/* 
================================================
CSVファイル読込 
================================================
*/

/* ファイルパス定義 */
FILENAME REF_FILE '/home/xxx/product_data.csv';

/* ファイル読込 */
PROC IMPORT
	DATAFILE=REF_FILE   /* ファイルパス */
    OUT=Dataset         /* データセット名 */
    DBMS=csv            /* DB管理システムの種類:csv */
    REPLACE;            /* 同じ名前のデータセットが存在する場合は置き換え */
    GETNAMES=yes;       /* ファイルの最初の行を変数名として取得 */
RUN;

/* データ出力 */
PROC PRINT 
	DATA=Dataset;
RUN;

出力イメージ

Obs	      date	product	price
1	2022-01-01	  apple	  100
2	2022-01-01	 orange	  200
3	2022-01-01	  grape	  300
4	2022-01-01	  lemon	  400
5	2022-01-01	 banana	  500

【SAS実践】データセットを編集

SAS環境にデータセットを定義し、それを編集する操作について解説します。

既存のカラム(列)の値を更新

読み込んだデータセットのカラムを1つ指定し、値を更新したい場合、次のようなコードで実現できます。

コード

/* 項目更新 */
DATA Dataset;	
    SET Dataset;            /* データセット指定 */
   	price = price * 1.5;    /* 既存のカラム更新 */
RUN;

/* データ出力 */
PROC PRINT 
	DATA=Dataset;
RUN;

出力イメージ

1	2022-01-01	  apple	  150	
2	2022-01-01	 orange	  300	
3	2022-01-01	  grape	  450
4	2022-01-01	  lemon	  600	
5	2022-01-01	 banana	  750

新規カラム(列)の作成

読み込んだデータセットに対して新規にカラムを追加したい場合、以下のように記述します。

コード

/* 項目追加 */
DATA Dataset;
    /* データセット指定 */
    SET Dataset;   
    
	/* 新規項目追加 */
    tax = 0.1;
    price_with_tax = ROUND(price + (price * tax));
RUN;

/* データ出力 */
PROC PRINT 
	DATA=Dataset;
RUN;

出力イメージ

Obs	      date	product	price	tax	price_with_tax
1	2022-01-01	  apple	  150	0.1	          165
2	2022-01-01	 orange	  300	0.1	          330
3	2022-01-01	  grape	  450	0.1	          495
4	2022-01-01	  lemon	  600	0.1	          660
5	2022-01-01	 banana	  750	0.1	          825

既存のカラム(列)削除

読み込んだデータセットに含まれる特定のカラムを削除したい場合、次のように記述します。

コード

/* 
================================================
ファイル編集(項目削除)
================================================
*/

/* カラム削除 */
DATA Dataset;
    SET Dataset;                     /* データセット指定 */
	DROP price tax price_with_tax;   /* カラム削除 */
RUN;

/* データ出力 */
PROC PRINT 
	DATA=Dataset;
RUN;

出力イメージ

Obs	      date	product
1	2022-01-01    apple
2	2022-01-01	 orange
3	2022-01-01	  grape
4	2022-01-01	  lemon
5	2022-01-01	 banana

既存のレコード(行)更新

読み込んだデータセットに含まれる特定のレコードを更新したい場合、次のように記述します。

コード

/* 行更新 */
DATA Dataset;

	/* データセット指定 */
    SET Dataset;
    
	/* 条件を満たすレコード更新 */
	IF product = "apple" THEN DO;
		date = '11OCT2023'd;
	END;
RUN;

/* データ出力 */
PROC PRINT 
	DATA=Dataset;
RUN;

出力イメージ

Obs	      date	product
1	2023-10-11	  apple
2	2022-01-01	 orange
3	2022-01-01	  grape
4	2022-01-01	  lemon
5	2022-01-01	 banana

既存のレコード(行)削除

読み込んだデータセットに含まれる特定のレコードを削除したい場合、次のように記述します。

コード

/* 行削除 */
DATA Dataset;
    SET Dataset;                           /* データセット指定 */
	WHERE product in ("apple","orange") ;  /* 行削除 */
RUN;

/* データ出力 */
PROC PRINT 
	DATA=Dataset;
RUN;

出力イメージ

Obs	      date	product
1	2022-01-01    apple
2	2022-01-01	 orange

【参考】SASプログラミング記事一覧

当サイトではSASを用いたプログラミング解説記事を多数掲載しております。

SASはデータ処理・分析をはじめ、高度な統計解析や機械学習・AIによる予測モデリングなど様々な用途に利用できます。また金融や医療を代表とする様々な業界の分析業務で広く活用されています。

最後に

この記事が気に入ったら
フォローしてね!

目次