シベリア鉄道旅行記 更新中です。

SAS

「2地点間の緯度経度から直線距離でもっとも近いデータを取得する話」をSQLで書く話

SASYAMAさんの記事を見て、SQLで書いてみました。データステップ100万回 SAS新手一生 2地点間の緯度経度から直線距離でもっとも近いデータを取得する話 geodist関数 http://sas-tumesas.blogspot.jp/2016/02/2-geodist.html?spref=tw市の名称を処理しようと…

SASプログラミング ベストプラクティス25

SAS

Kirk Lafler Shares 25 Coding Techniques! ~ 25 Best Practice Coding Techniques for SAS Users こちらの記事(前回挙げたリンクのひとつ)を、リーダブルコードに倣って先輩からのアドバイス口調で抄訳しました。 ※は私が追加したメモです。 プログラムを…

GoodProgrammingPractice, リーダブルコードSAS編

前回の記事に、コメントでGoodProgrammingPractice(GPP)がありますよと教えていただきました。 (395さんありがとうございます!)教えていただいたのはこちらのPhUSEwikiのページ。 http://www.phusewiki.org/wiki/index.php?title=Good_Programming_Practi…

SASでリーダブルコードのサンプルを書く(宣言)

今更紹介する本でもないんですが、 良いコードを書くヒントを、ほとんどこの本から得ました。 少しでもプログラミングする人には、ぜひ一読いただきたい本です。リーダブルコード――より良いコードを書くためのシンプルで実践的なテクニック(目次) http://w…

SASmacroでファイルフルパスからパスだけ残す

タイトルの通り。Windows想定。 マクロで書くの手こずったのでメモ。 /*例えば「C:Users\hogehoge\file\something.txt」があったら、 「C:Users\hogehoge\file\」を取得。*/ %macro getPathFromFullPath(&filepath); %let path = %substr(&filepath,1,%eval(…

「最も近い値を持つデータを別のデータセットからマッチングする方法について考える話」をSQLで考える話

最も近い値を持つデータを別のデータセットからマッチングする方法について考える話この記事を読みまして、直積にはなるけどSQL一発で書けるよな、と思って書いてみました。 proc sql; create table result as select T1.ID, T1.X, T1.ID2, T1.Y, T1.diff fr…

テストの自動化は正義

SASのプログラムをテストするのに、 JUnitみたいなのあればなーと思ったらありました。http://ja.wikipedia.org/wiki/ユニットテスト・フレームワーク一覧 SASの項目には"FUTS"と"SCLUnit"があるけど、FUTSはリンク切れしてた。 SCLUnit SAS 9.1以上で、JUni…

SASで正規表現

SASではPerl方言の正規表現が実装されている。 ("/"で括って最後にi,m,xなど修飾子) Perl RegularExpressionsで、PRXで始まる関数名が付けられている。 関数 PRXPARSE(正規表現):正規表現のコンパイル。正規表現IDを返す。 同じ正規表現で繰り返し処理す…

今日はtransposeについて

SAS

http://support.sas.com/documentation/cdl/en/proc/67327/HTML/default/viewer.htm#n1xno5xgs39b70n0zydov0owajj8.htmtransposeという名前以上にいろいろできる印象。 SASの汎用的出力制御方法ods(output delivery system)がサポートしていないということか…

proc freqを使ってみた。

SAS

freqプロシージャの話。 frequencyから来ている名前で、主に頻度解析ができる。Base SAS(R) 9.3プロシジャガイド: 統計プロシジャ http://www.sas.com/offices/asiapacific/japan/service/help/webdoc/procstat/viewer.htm#procstat_freq_sect001.htmシンプ…

転職して、SASを始めたのでいろいろメモる。

SAS

統計解析の為のデータ処理言語であり、 巨大なプロシージャライブラリであったりする。基本は有料なんてものじゃないライセンス料のかかる、 プロプライエタリなソフトウェア。 でもUniversity Editionがあり、Virtual Box上でその基本機能は使える。 http:/…