任意のSASデータセットのオブザベーション数を取得したい場合がよくあります。手法はあると思いますが、ここでは以下3つの方法を紹介します。下記『temp.sas7bdat』とします。;これが一番普通の手法でしょうか。NOBS=の後に記述したSAS名(ここではobs)に、SETしたSASデータセットのオブザベーション数が入ります。SYMPUTルーチンでマクロ変数を定義するだけです。実行結果は下記の通りです。;まず、count()はSQLの関数です。引数で指定した変数に欠損値またはブランクがある場合、そのオブザベーション(行)をカウントしてくれません。(もちろん、それを理解したうえで使う場合もありますが...)そのため、このような場合ではcount(*)と記述します。マクロ変数名」というかたちで記述します。実行結果は下記の通りです。;最後は、かなりマニアック(?)な方法です。Languageの略で、SAS/AFプロダクトなどで使われるSAS言語のうちのひとつです。ここではそのSCL関数の中から下記3つを使用します。・・・SASデータセットを開くATTRN関数・・・SASデータセットの情報を取得するCLOSE関数・・・SASデータセットを閉じるまずは、OPEN関数でSASデータセットを開きます。戻り値をマクロ変数として定義しています。次に、ATTRN関数でSASデータセットの情報(ここではオブザベーション数)を取得します。第2引数)」OPEN関数で開いたSASデータセットの識別子を第1引数に与えます。第2引数にNOBSというキーワードを指定を指定します。(NOBS以外にも指定できるキーワードはあります。詳しくはまたの機会に。)最後に、CLOSE関数で開いているSASデータセットを閉じます。「CLOSE(SASデータセット識別子)」OPEN関数で開かれたSASデータセットは、そのままだと開かれたままの状態です。理由がない限り、CLOSE関数で必ず閉じましょう。実行結果は下記の通りです。長くなりましたが、3通りの方法を紹介しました。どれがベストな方法かは答えられません。単純にオブザベーション数を取得するだけなのか一緒に他の処理も行う必要があるのか想定されるデータ(容量)はどれぐらいなのか等、シチュエーションは様々でしょう。これに限ったことではありませんが、いくつかの手法の中から状況に応じて使い分けることが、理想でありベストな方法なのだと思います。ネイチャーインサイトの際とがリニューアルしました。それに伴い、NIBLOGも引っ越しすることになりました。-今回は統計学(計量経済学)の手法の1つ操作変数法について話したいと思います。その前に、具体例として、賃金関数と呼ばれる理論についてお話します。70年代に発表した研究で、人の収入は、教育年数(≒学歴)である程度決まる、というものです。CASE式を使ってみよう!条件分岐処理は、SASに限らず様々なプログラミング言語で不可欠なものです。Excelだと、こんな感じの現象。SASだと、こんな感じの現象。