Sas: excel から特定の範囲をインポートする方法
PROC IMPORTステートメントをRANGEオプションとともに使用すると、特定のセル範囲を Excel ファイルから SAS にインポートできます。
これを行うには、次の基本構文を使用できます。
/*import data from Excel file called basketball_data.xlsx*/ proc import out =my_data datafile ="/home/u13181/basketball_data.xlsx" dbms =xlsx replace ; getnames =YES; range ="Sheet1$C4:E11"; run ;
各行の動作は次のとおりです。
- out : SAS にインポートされたデータセットに付ける名前
- datafile : インポートする Excel ファイルの場所
- dmbs : インポートされるファイルの形式
- replace : ファイルがすでに存在する場合はファイルを置き換えます
- getnames : 最初の行を変数名として使用します (最初の行に変数名が含まれていない場合は NO に設定します)
- range : インポートするセルの範囲
この特定の例では、 Basketball_data.xlsxという Excel ファイルからSheet1の範囲C4:E11のセルをインポートすることに注意してください。
次の例は、この構文を、 Basketball_data.xlsxという Excel ファイルで実際に使用する方法を示しています。
例 1: 範囲を指定せずに Excel ファイルから SAS にデータをインポートする
次の構文を使用すると、インポートするセルの特定の範囲を指定せずに、Excel ファイルをmy_dataという名前の SAS データセットにインポートできます。
/*import data from Excel file called basketball_data.xlsx*/ proc import out =my_data datafile ="/home/u13181/basketball_data.xlsx" dbms =xlsx replace ; getnames =YES; run ; /*view dataset*/ proc print data =my_data;
rangeステートメントを使用してインポートするセルの範囲を指定しなかったため、SAS はシート内のデータが検出されるまですべてのセルをインポートしました。
例 2: Excel ファイルから SAS にデータをインポートし、範囲を指定する
次の構文を使用して Excel ファイルをmy_dataという名前の SAS データセットにインポートし、範囲オプションを使用して特定の範囲のセルのみをインポートできます。
/*import specific cells from Excel file called basketball_data.xlsx*/ proc import out =my_data datafile ="/home/u13181/basketball_data.xlsx" dbms =xlsx replace ; getnames =YES; range ="Sheet1$C4:E11"; run ; /*view dataset*/ proc print data =my_data;
rangeステートメントを使用してインポートするセルの範囲を指定したため、SAS はその範囲内のセルのみをシートからインポートしました。
名前付き範囲をrangeステートメントに渡すこともできることに注意してください。
たとえば、セル範囲C4:E11にmy_rangeという名前の範囲がある場合、代わりにPROC IMPORTステートメントで引数range=”my_range”を使用できます。
注: SAS のPROC IMPORTステートメントの完全なドキュメントは、 ここで見つけることができます。
追加リソース
次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。
CSV ファイルを SAS にインポートする方法
SAS から CSV ファイルにデータをエクスポートする方法
SAS から Excel にデータをエクスポートする方法