SASプログラミング– SASでコーディングする方法を学びましょう!



SASプログラミングに関するこのブログでは、SASプログラミングの概念を紹介し、SASのさまざまな基礎を例を挙げて詳細に理解するのに役立ちます。

このブログでは、SASプログラミングの重要な概念のいくつかを紹介します。始める前に、SASに精通することが重要です。私の以前のブログ SASチュートリアル SASとそのアプリケーションを理解し、ここでプログラミング環境として使用するSAS University Editionをインストールするのに役立ちます。スキルとは何か疑問に思って、今年は習得する必要がありますか?また、データ分析に踏み込むことを計画している場合は、 同じことを始めるための最良の方法の1つです。

Edureka 2019 Tech Career Guideがリリースされました!ガイドの最もホットな仕事の役割、正確な学習パス、業界の見通しなど。 ダウンロード 今。





だからそれ以上なしでディレイ、SASプログラミングを始めましょう。

このブログは、次のトピックを理解するのに役立ちます。



コーディングを始める前に、SASプログラミングにとって重要ないくつかの重要な用語について簡単に説明したいと思います。

javaは配列で最大の数を見つけます

SASプログラミングの基礎

SAS Windows

大規模な組織やトレーニング機関は、SASWindowsの使用を好みます。 SAS Windowsには、コードの記述に必要な時間を短縮するのに役立つ多くのユーティリティがあります。

次の画像は、SASWindowsのさまざまな部分を示しています。



SAS-Windows-SASプログラミング-Edureka

  • ログウィンドウ :実行ウィンドウです。ここでは、プログラムの実行を確認できます。また、エラー、警告、メモも表示されます。
  • コードウィンドウ このウィンドウは、エディターウィンドウとも呼ばれます。 SASコードを記述できる白紙またはメモ帳と考えてください。
  • 出力ウィンドウ :名前が示すように、このウィンドウには、エディターで記述したプログラム/コードの出力が表示されます。
  • 結果ウィンドウ :1つのセッションで実行されるプログラムのすべての出力を一覧表示するインデックスです。特定のセッションの結果を保持しているため、ソフトウェアを閉じて再起動すると、結果ウィンドウは空になります。
  • ウィンドウを探索 :システム内のすべてのライブラリのリストを保持します。ここで、システムでサポートされているファイルを参照することもできます。

Linuxを使用している組織もありますが、グラフィカルユーザーインターフェイスがないため、クエリごとにコードを記述する必要があります。したがって、使用するのは不便です。

SASデータセット

SASデータセットはデータファイルと呼ばれます。データファイルは行と列で構成されます。行は観測値を保持し、列は保持します変数名

SAS変数

SASには、次の2種類の変数があります。

  • 数値変数 これはデフォルトの変数タイプです。これらの変数は数式で使用されます。
  • 文字変数文字変数は、数式で使用されない値に使用されます。
    それらはテキストまたは文字列として扱われます。変数を追加すると、変数は文字変数になります。‘$’ sign変数名の最後にあります。

SASライブラリ

SASライブラリは、コンピュータの同じフォルダまたはディレクトリに保存されているSASファイルのコレクションです。

  • 一時図書館 :このライブラリでは、SASセッションが終了するとデータセットが削除されます。
  • 常設図書館 :データセットは永続的に保存されます。したがって、セッション間で利用できます。

ユーザーは、キーワードを使用して、ユーザー定義ライブラリと呼ばれる新しいライブラリを作成または定義することもできます。 LIBNAME 。これらも永続的なライブラリです。

SASプログラミング:SASコード構造

SASプログラミングは、次の2つの構成要素に基づいています。

  • データステップ :DATAステップはSASデータセットを作成し、そのデータをPROCステップに渡します
  • PROCステップ :PROCステップはデータを処理します

SASプログラムは、以下のルールに従う必要があります。

  • ほとんどすべてのコードは、DATAまたはPROCステップで始まります
  • SASコードのすべての行はセミコロンで終わります
  • SASコードはRUNまたはQUITキーワードで終わります
  • SASコードでは大文字と小文字は区別されません
  • 異なる行にコードを記述したり、1行に複数のステートメントを記述したりできます

いくつかの基本的な用語を確認したので、次の基本的なコードを使用してSASプログラミングを開始しましょう。

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run

上記のコードでは、Employee_Infoというデータセットを作成しました。 3つの変数があります。1つはEmp_Idとしての数値変数で、2つはEmp_NameおよびEmp_Verticalsとしての文字変数です。 Runコマンドは、出力ウィンドウにデータセットを表示します。

以下の画像は、上記のコードの出力を示しています。

結果を印刷ビューで表示したい場合は、PROC PRINTプロシージャを使用してそれを行うことができますが、残りのコードは同じままです。

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run PROC PRINT DATA = Employee_Info Run

以下の画像は、上記のコードの出力を示しています。

データセットを作成し、PRINTプロシージャがどのように機能するかを理解しました。それでは、上記のデータセットを取得して、さらにプログラミングに使用しましょう。従業員の参加日をデータセットに追加するとします。そこで、DOJという変数を作成し、それを入力として与えて、結果を出力します。

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJデータライン101Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 PROC PRINT DATA = Employee_Infoを実行します実行

次の画像は、上記のコードの出力を示しています。変数が作成されたことがわかりますが、DOJの値は出力されませんでした。代わりに、ドットが日付値に置き換わっています。


なぜこれが起こったのですか? DOJ変数には接尾辞「$」が付いていません。つまり、デフォルトではSASはそれを数値変数として読み取ります。ただし、入力したデータには特殊文字「/」が含まれているため、純粋な数値データではないため、結果は出力されません。ログウィンドウを確認すると、「変数DOJのデータが無効です」というエラーメッセージが表示されます。

では、この問題をどのように解決しますか?それを解決する1つの方法は、DOJ変数に接尾辞「$」を使用することです。これにより、DOJ変数が文字に変換され、日付値を印刷できるようになります。コードに変更を加えて、出力を見てみましょう。

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ $ datalines 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09 / 2016実行PROCPRINT DATA = Employee_Info実行

出力画面には以下の出力が表示されます。


DOJを文字に変換すると、データ値が日付として表示されていることがわかります。ただし、これは一時的な解決策です。どのように説明させてください。

さて、銀行が同様のデータセットを持っていると想像してください。データセットには、ローン金額、分割払い、そしてローンの分割払いの期日。想像してみてください。所有者が分割払いの期限を過ぎており、銀行が遅延を計算したいと考えています。銀行は、締め切り日と現在の日付の差を計算する必要があります。

ただし、銀行のデータセットに文字形式の日付がある場合、銀行はそのデータセットに対して数学演算を実行できません。この問題は、データセットにも影響を与える可能性があります。では、この問題をどのように解決するのでしょうか。

次の概念は、この問題を克服するのに役立ちます。

SASの情報とフォーマット

SASプログラミングを上手に使いたい場合は、このトピックをよく理解することが重要です。思い出していただけると思いますが、SASには2つの標準変数タイプがあることを前述しました。

  • 数値
  • キャラクター

SASが非標準変数に遭遇すると、SASはエラーをスローするか、目的の出力が得られません。この問題を克服するために、SASは情報に基づくおよびフォーマット。

詳細はこちら

情報は通常、外部ファイルまたはフラットファイル(など)からデータを読み取ったり入力したりするために使用されますテキストファイルまたはシーケンシャルファイル)。 informatは、SASに読み取り方法を指示しますSAS変数へのデータ。 SASには、次の3種類の情報があります。文字、数値、および日付/時刻。情報は次のように命名されます構文構造:

  • 文字情報:$ INFORMATw。
  • 数値情報:INFORMATw.d
  • 通知された日付/時刻:INFORMATw。

「$」は文字情報を示します。 INFORMATは、オプションの場合もありますSAS情報名。 「w」は、の幅(バイトまたは列数)を示します変数。 「d」は、の右側の桁数を指定するための数値データに使用されます小数点以下の桁数。 SASができるように、すべての情報には小数点(。)が含まれている必要があります
informatとSAS変数を区別します。

前のコードに戻って、Date / TimeInformatが役立つかどうかを確認しましょう。したがって、それに応じてコードを変更し、次のように日付情報を追加しましょう。

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJddmmyy10。データライン101Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Run PROC PRINT DATA = Employee_Info Run

コードの行番号3は、日付を使用して変数「参加日」(DOJ)を読み込むようにSASに指示します。
MMDDYYwに情報を提供します。各日付フィールドが10スペースを占める場合、「w。」修飾子は次のようになります。10に設定します。

コードの出力は次のようになります。

結果は、まだ望ましい結果が得られていないことを示しています。代わりに、DOJ列には、指定した日付ではなく、いくつかの数値が保持されています。さて、それはなぜですか?日付情報を使用して日付を読み取ると、SASは日付を数値として保存します。つまり、日付から1960年1月1日までの日数として読み取られます(例:1994年3月15日は12492として格納されます)。

この背後にある理由は、SASには日付と時刻を追跡する3つの別個のカウンターがあるためです。これらの日付カウンターは1960年1月1日にゼロから始まりました。したがって、1960年1月1日より前の日付は負の値になり、それ以降の日付は正の値になります。毎日深夜に、日付カウンターが1つ増えます。

SASの創設者は、IBM 370システムのおおよその誕生日を使用したいと考えていたという話があり、覚えやすいおおよその1960年1月1日を選択しました。

DOJ列にこれらの数値が表示された理由がわかったので、この問題の解決を試みましょう。この問題を克服するために、Formatを使用します。

フォーマット

情報はデータを読み取るための指示ですが、形式は表示または出力データ。変数のフォーマットを定義することは、変数の値を表示するようにSASに指示する方法です。フォーマットは、インフォーマットと同じ3つのクラス(文字、数値、日時)にグループ化され、常にドットが含まれます。

formatステートメントの一般的な形式は次のとおりです。

  • FORMAT変数名FORMAT-NAME。

データセットEmployee_Infoを持つコードに戻って、FORMATコマンドを使用して日付を正しく表示できるかどうかを確認しましょう。

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJddmmyy10。 DOJddmmyy10をフォーマットします。データライン101Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007 105 Mandeep SAS 11/09/2016 Run PROC PRINT DATA = Employee_Info Run

上記のコードの4行目でFORMATコマンドを使用しました。次の出力画面で、目的の出力が得られます。

Dateformatコマンドを使用してデータセットを正常に表示しました。 formatとinformatの使い方をご理解いただけたでしょうか。SASプログラミングブログを進めて、別の重要な概念を見てみましょう。

SASループ

SASプログラミングを行っているときに、繰り返し実行する必要がある状況に遭遇する可能性があります。コードのブロックを数回。同じステートメントのセットを何度も書くのは不便です。ここでループが浮かび上がります。 SASでは、Doステートメントを使用してループを実装します。 Doループとも呼ばれます。下の画像はSASのDoループステートメントの一般的な形式。

SASのDOループのタイプは次のとおりです。

  • インデックス :ループは、インデックス変数の開始値から停止値まで続きます。
  • 一方 :ループは、 一方 条件が偽になります。
  • まで :ループは まで 条件がTrueになります。

インデックスループを実行する

の開始値と停止値としてインデックス変数を使用します インデックスループを実行する 。 SASステートメントは、インデックス変数が最終値に達するまで繰り返し実行されます。
構文:

indexvariable = initialvalueからfinalvalueへのSASステートメントを実行しますEnd

Do Index Loopを理解するために、サンプルコードを見てみましょう。以下のコードでは、VARはインデックス変数です。

DATA SampleLoop SUM = 0 Do VAR = 1〜10 SUM = SUM + VAR END PROC PRINT DATA = SampleLoop Run

上記のコードを実行すると、次の出力が得られます。

ループ中

ザ・ 一方を行います ループはWHILE条件を使用します。このループは、条件がtrueの場合にコードのブロックを実行し、条件がfalseになるまで実行を続けます。条件がfalseになると、ループは終了します。

構文:

Do While(条件)SASステートメントEnd

次のサンプルコードは、DOWHILEループを理解するのに役立ちます。

DATA SampleLoop SUM = 0 VAR = 1 Do While(VAR<15) SUM = SUM + VAR VAR+1 END PROC PRINT DATA = SampleLoop Run 

上記のコードは、次の出力を提供します。

ループするまで行う

DoUntilループは まで このループは、条件がfalseの場合にコードのブロックを実行し、条件がtrueになるまで実行を続けます。条件が真になると、ループは終了します。

構文:

文字列Pythonを逆にする方法
まで実行(条件)SASステートメントEND

サンプルプログラムを見てみましょう。

DATA SampleLoop SUM = 0 VAR = 1 Do until(VAR> 15)SUM = SUM + VAR VAR + 1 END PROC PRINT Run

コードの出力は次のとおりです。

これで、SASプログラミングのループの概念が完成しました。これまでに学習したすべてのトピックでは、SASプログラミングの基本について一般的に説明してきました。

それでは、いくつかの統計手順を見てみましょう。これらの手順は、高度な基盤を形成します 分析手順

新しいアップデートを入手するには、YouTubeチャンネルに登録してください。

SASを使用した基本的な統計手順

手続き手段

この手順は、算術平均と標準偏差を計算するために使用されます。統計に不慣れな人にとっては、これらの用語を理解するのは難しいかもしれません。したがって、コーディングを開始してこの手順を使用する前に。これらの用語の意味を説明しようと思います。

算術平均から始めて、SASプログラミングでPROCMEANSを使用して計算する方法を見てみましょう。

算術平均

数値変数の値の合計を変数の数で割ると、 算術平均 。これは平均とも呼ばれ、中心傾向の尺度です。中心傾向の尺度は、データセット内の中心位置を特定することによってデータセットを記述しようとする単一の値です。

SASプログラミングでは、PROCMEANSを使用して算術平均を計算します。この手順では、データセットのすべての変数またはいくつかの変数の平均を見つけることができます。グループを形成し、そのグループに固有の変数の平均を計算することもできます。

構文:

PROC MEANS DATA = DATASETクラス変数変数変数
  • 変数 :上記の構文の変数は、平均が計算されるデータセットの変数を示します。

データセットの平均

もし、あんたが変数なしでデータセット名のみを指定すると、データセット内のすべての変数の平均を計算できます。

サンプルコードを見てみましょう。 「車」と呼ばれる事前定義されたSASデータセットを検討しました。次のコマンドは、データセットを表示します。

PROC PRINT data = sashelp.CARS Run

以下の画像は、上記のコードの出力を示しています。


次に、このデータセットコードを使用して、データセット内の各変数の平均を計算しましょう。'車'。

PROC MEANS DATA = sashelp.CARS Mean SUM MAXDEC = 2実行

以下の画像は、小数点以下2桁までのデータセット内のすべての変数の平均を示しています。

選択された変数の平均

Varオプションで名前を指定することにより、指定された変数の平均を取得できます。以下のコードを参照してください。

PROC MEANS DATA = sashelp.CARSはSUMMAXDEC = 2var馬力シリンダーを意味します実行

クラス別平均

数値変数を使用してグループに編成することにより、数値変数の平均を見つけることができます。それらをグループ化するためのいくつかのパラメーター。次のサンプルコードを検討してください。さまざまな車の「メーカー」と「タイプ」のクラスで分類されたさまざまなグループの馬力の平均を調べてみましょう。

PROC MEANS DATA = sashelp.CARS MEANS SUM MAXDEC = 2 class make type var horsepower Run

以下の画像は、上記のコードの出力を示しています。

SASプログラミングブログを続けて、別の重要な統計概念を見てみましょう。

標準偏差

標準偏差(SD)は、特定のデータセット内のデータがどの程度変化しているかを示す尺度です。数学的には、各データポイントがデータセットの平均値にどれだけ近いかを示します。標準偏差の値が0に近い場合は、データポイントがデータセットの平均に非常に近いことを示し、標準偏差が高い場合は、データポイントが広範囲の値に分散していることを示します。

SASでは、2つの手順を使用して標準偏差の値を計算できます。彼らです:

  • 手続き手段
  • 調査手段

PROC平均を使用した標準偏差

proc平均を使用して標準偏差を測定できます。選択する必要があります。 時間 PROCステップのオプション。データセット内の各数値変数の標準偏差値が表示されます。

構文:

フィボナッチ反復C ++
PROC MEANS DATA =データセットSTD

このサンプルコードを検討し、SASHELPライブラリのCARSデータセットから別のデータセットCARS1を作成しましょう。これを行うために、PROCSQLプロシージャを使用します。車の「タイプ」と「メーカー」を使用してデータをグループ化し、PROC平均ステップでSTDオプションを使用して、選択した変数の標準偏差を計算しましょう。

PROC SQL create table CARS1 as SELECT make、type、horsepower、cylinders、weight FROM SASHELP.CARS WHERE make in( 'Audi'、 'BMW')RUN PROC MEANS DATA = CARS1 STD Run

上記のコードは、選択した変数の標準偏差を示します。次の画像は出力を示しています。

PROC SURVEYMEANS

この手順は、カテゴリ変数の標準偏差の測定や分散などのいくつかの高度な機能とともに、標準偏差を測定するために使用されます。

構文:

PROCSURVEYMEANSオプション統計-キーワード変数別クラス変数変数変数

使用されるパラメーターの説明は次のとおりです。

  • 沿って 観測値のグループを作成するために使用される変数を示すために使用されます。
  • クラス カテゴリ変数に使用される変数を示します。
  • どこ SDが計算される変数を示します。

クラス変数の各値の統計を作成するクラスパラメーターの使用法を説明するこのサンプルコードを見てみましょう。

PROC SURVEYMEANS DATA = CARS1STDクラスタイプVarタイプ馬力ods出力統計=長方形実行PROCPRINT DATA =長方形実行

以下の画像は、上記のコードの出力を示しています。これは、95%信頼区間の変数「馬力」のデータの分布を示しています。 (信頼区間とは、パラメーターの値がその範囲内にあるという特定の確率があるように定義された値の範囲を意味します。)

これで、SASプログラミングブログは終わりです。ブログの内容に疑問や問題がある場合は、コメントセクションに残してください。できるだけ早く解決し、返信します。

SASを学び、分析ドメインでキャリアを築きたい場合は、 インストラクター主導のライブトレーニングと実際のプロジェクト経験が付属しています。このトレーニングは、SASを深く理解し、SASプログラミング言語のさまざまな概念を習得するのに役立ちます。

質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。