【DANS】
○データ解析用プログラムパッケージ DANS [Version 7.4]
DANS(Data ANalysis System)はUNIX/Linux上で作動するデータ解析用プログラムパッケージです。
このパッケージは基本的にコマンド方式のプログラム群であり、「単純さ」をモットーにしたシステムです。
そのため使い勝手はあまり良くありませんが、各種のコマンドをうまく組み合わせることによって高度な活用ができるように設計したつもりです。
DANSの概要はdetc74.zipに含まれているマニュアルdans.1(テキストファイル)を御覧ください。
・解凍方法
DANSのディレクトリは上表のようにdansの下にfun、mat、lib、io、paramet、nonpara、multi、life、dose、times、detcを並べた構成になっています。
上表中の各ZIPファイルをダウンロードしたらそれぞれのディレクトリに保存し、そこで解凍してください。
・ファイル内容
それぞれのディレクトリで各ZIPファイルを解凍すると次のようなファイルが復元されます。
-
dansディレクトリ:DANS全体に共通するファイル
dansink.mk:DANSコマンドのコンパイルとインストール用のMakefileで、各ディレクトリのMakefileにインクルードされる
install.bsh:インストール用シェルスクリプト
-
funディレクトリ:自作の一般関数用ファイル
Makefile:ライブラリ作成&インストール用Makefile
fun.H:ライブラリ用ヘッダファイル
*.C:ソースファイル
-
matディレクトリ:自作の行列・ベクトル関数用ファイル
Makefile:ヘッダファイルのインストール用Makefile
mat.H:行列・ベクトル関数用ヘッダファイル
-
libディレクトリ:DANSの共通関数用ファイル
Makefile:ライブラリ作成&インストール用Makefile
dans.H:ライブラリ用ヘッダファイル
*.C:ソースファイル
-
ioディレクトリ:DANSデータファイル処理コマンド用ファイル
Makefile:コマンド作成&インストール用Makefile
*.C:ソースファイル
*.1:マニュアルファイル
*.bsh:コマンドテスト用シェルスクリプトファイル
*.dns:コマンドテスト用DANSデータファイル
*.dat:コマンドテスト用各種データファイル
*.csv:コマンドテスト用CSVファイル
*.d:コマンドテスト結果のDANSデータファイル
*.txt:コマンドテスト結果のテキストファイル
-
parametディレクトリ:パラメトリック手法コマンド用ファイル
Makefile:コマンド作成&インストール用Makefile
*.C:ソースファイル
*.1:マニュアルファイル
*.bsh:コマンドテスト用シェルスクリプトファイル
*.dns:コマンドテスト用DANSデータファイル
*.d:コマンドテスト結果のDANSデータファイル
*.dat:コマンドテスト結果の各種データファイル
*.txt:コマンドテスト結果のテキストファイル
-
nonparaディレクトリ:ノンパラメトリック手法コマンド用ファイル
Makefile:コマンド作成&インストール用Makefile
*.C:ソースファイル
*.1:マニュアルファイル
*.bsh:コマンドテスト用シェルスクリプトファイル
*.dns:コマンドテスト用DANSデータファイル
*.d:コマンドテスト結果のDANSデータファイル
*.dat:コマンドテスト結果の各種データファイル
*.txt:コマンドテスト結果のテキストファイル
-
multiディレクトリ:多変量解析コマンド用ファイル
Makefile:コマンド作成&インストール用Makefile
*.C:ソースファイル
*.1:マニュアルファイル
*.bsh:コマンドテスト用シェルスクリプトファイル
*.dns:コマンドテスト用DANSデータファイル
*.d:コマンドテスト結果のDANSデータファイル
*.dat:コマンドテスト結果の各種データファイル
*.txt:コマンドテスト結果のテキストファイル
-
lifeディレクトリ:生命表解析コマンド用ファイル
Makefile:コマンド作成&インストール用Makefile
*.C:ソースファイル
*.1:マニュアルファイル
*.bsh:コマンドテスト用シェルスクリプトファイル
*.dns:コマンドテスト用DANSデータファイル
*.d:コマンドテスト結果のDANSデータファイル
*.dat:コマンドテスト結果の各種データファイル
*.txt:コマンドテスト結果のテキストファイル
-
doseディレクトリ:用量反応解析コマンド用ファイル
Makefile:コマンド作成&インストール用Makefile
*.C:ソースファイル
*.1:マニュアルファイル
*.bsh:コマンドテスト用シェルスクリプトファイル
*.dns:コマンドテスト用DANSデータファイル
*.d:コマンドテスト結果のDANSデータファイル
*.dat:コマンドテスト結果の各種データファイル
*.txt:コマンドテスト結果のテキストファイル
-
timesディレクトリ:時系列解析コマンド用ファイル
Makefile:コマンド作成&インストール用Makefile
*.C:ソースファイル
*.1:マニュアルファイル
*.bsh:コマンドテスト用シェルスクリプトファイル
*.dns:コマンドテスト用DANSデータファイル
*.d:コマンドテスト結果のDANSデータファイル
*.dat:コマンドテスト結果の各種データファイル
*.txt:コマンドテスト結果のテキストファイル
-
detcディレクトリ:その他のコマンド用ファイル
Makefile:コマンド作成&インストール用Makefile
*.C:ソースファイル
*.1:マニュアルファイル
*.bsh:コマンドテスト用シェルスクリプトファイル
*.dns:コマンドテスト用DANSデータファイル
*.d:コマンドテスト結果のDANSデータファイル
*.dat:コマンドテスト結果の各種データファイル
*.txt:コマンドテスト結果のテキストファイル
・インストール方法
DANSをコンパイルしてインストールするには、あらかじめ次のソフトウェアがシステムにインストールされている必要があります。
- g++:C++コンパイラ
- make:makeコマンド
- boost:C++の実験的機能用ライブラリ(DANSで多倍長実数を使用するのに必要)
Ubuntuの場合、次のコマンドを実行すればg++とmakeをインストールできると思います
$ sudo apt install build-essential
または
$ sudo apt install g++
$ sudo apt install make
g++はversion11以上が必要なので、念の為に次のコマンドでg++のバージョンを確認しておきます。
$ g++ --version
さらに次のコマンドを実行すればboostをインストールできると思います
$ sudo apt install libboost-dev libboost-doc
上記のソフトウェアをインストールした後、dansディレクトリにあるinstall.bshファイルを編集してヘッダファイル(*.H)、ライブラリ(lib*.so.*)、実行ファイル(拡張子なし)、マニュアルファイル(*.1)のインストール先ディレクトリを指定します。
編集前のinstall.bshは次のように/usr/localの下の各ディレクトリが設定されています。
これらのディレクトリを自分のシステムに合わせて変更してください。
LINCDIR := /usr/local/include ← ヘッダファイルのインストール先ディレクトリ
LLIBDIR := /usr/local/lib ← ライブラリのインストール先ディレクトリ
LBINDIR := /usr/local/bin ← 実行ファイルのインストール先ディレクトリ
LMANDIR := /usr/local/man ← マニュアルファイルのインストール先ディレクトリ
Ubuntuの場合、ライブラリのインストール先ディレクトリは/etc/ld.so.conf.d/libc.confファイルに記載してあります。
また実行ファイルはPATHが通ったディレクトリにインストールしなければなりません。
PATHが通ったディレクトリは環境変数$PATHに記録されているので次のコマンドで確認することができます。
$ echo $PATH
マニュアルファイルのインストール先ディレクトリはmanコマンドが使用するディレクトリでなければなりません。
manコマンドが使用するディレクトリは次のコマンドで確認することができます。
$ man -w
通常、上記の各ディレクトリはroot(スーパーユーザー)だけがファイルをコピーすることができます。
そのため普通のユーザーではファイルをインストールできないので、install.bsh中でsudoコマンドによってパーミッションを変更してファイルをコピーできるようにしています。
これは次のようなコマンドを実行することによって手作業で行うこともできます。
$ cd /usr/local ← /usr/localの下に各ディレクトリがある時
$ sudo chmod -v a+wx include lib bin man
※sudoコマンドを実行するとユーザーのパスワードを尋ねてくる
※そこでパスワードを入力するとchmodコマンドを実行する
$ cd /usr/local/man
$ sudo mkdir cat1
$ sudo chmod -v a+wx cat1
※sudoを連続して実行するとパスワードを入力しなくても良い
install.bshを編集して各ディレクトリを設定したら、dansディレクトリでinstall.bshを実行します。
するとsudoコマンドを実行するためにユーザーのパスワードを尋ねてくるので、パスワードを入力してください。
パスワード入力後、ソースファイルがコンパイルされ、インクルードファイル、ライブラリ、実行ファイル、マニュアルファイルが各ディレクトリにインストールされるはずです。
ただしインストール先のディレクトリがすでに整備されているとsudoコマンドを実行しないので、パスワードを入力しなくてもインストールされます。
インストール後、次のようなコマンドを自動的に実行してライブラリをロードするためのローダー用キャッシュを再設定します。
ただしインストール先のディレクトリがすでに整備されていたのでパスワードを入力しなかった時は、このコマンドを実行する時にパスワードの入力が必要です。
$ sudo ldconfig
install.bshを使わず、各ディレクトリごとにプログラムをインストールしたり、コンパイルしたりできます。
例えばdetcディレクトリ中のプログラムだけをインストールするには、detcディレクトリに入ってmake installコマンドを実行します。
$ cd detc
$ make install
detcディレクトリの中のプログラムをコンパイルだけして、インストールしない時は次のようなコマンドを実行します。
$ make
・プログラムのテスト方法
DANSの各コマンドをテストしたい時は、そのコマンドの実行ファイルが入っているディレクトリで「<コマンド名>.bsh」ファイルを実行します。
どのコマンドがどのディレクトリに入っているかはdetcディレクトリにあるdans.1を見るか、dansコマンドまたはman dansコマンドを実行します。
$ dans
または
$ man dans
例えばdmainコマンドをテストしたい時は、detcディレクトリに入ってdmain.bshを実行します。
$ cd detc
$ ./dmain.bsh
この結果、ディレクトリにあるテストデータを用いてdmainを実行し、出力された結果をディレクトリにある正しい出力結果と比較します。
比較した結果はdiff.logファイルに保存されるので、例えばテキストファイル表示コマンドlessを使ってdiff.logの内容を確認します。
$ less diff.log
この結果、次のような内容が表示されれば正しい結果が出力されています。
・dmain_def.txt と dmain_def_v04.txtの比較
・dmain_dns.d.bak と dmain_dns.dの比較
・dmain_ngp.dat.bak と dmain_ngp.datの比較
・dmain_dopt_v02.txt と dmain_fopt_v04.txtの比較
・dmain_dopt_v02.d と dmain_fopt_v04.dの比較
・dmain_dopt_v02.dat と dmain_fopt_v04.datの比較
・dmain_dopt_v02.txt と dmain_env_v04.txtの比較
・dmain_dopt_v02.d と dmain_env_v04.dの比較
・dmain_dopt_v02.dat と dmain_env_v04.datの比較
・dmain_dopt.txt と dmain_dopt_v04.txtの比較
・dmain_dopt.d と dmain_dopt_v04.dの比較
・dmain_dopt.dat と dmain_dopt_v04.datの比較
・dmain_fopt.txt と dmain_fopt_v04.txtの比較
・dmain_fopt.d と dmain_fopt_v04.dの比較
・dmain_fopt.dat と dmain_fopt_v04.datの比較
・dmain_env.txt と dmain_env_v04.txtの比較
・dmain_env.d と dmain_env_v04.dの比較
・dmain_env.dat と dmain_env_v04.datの比較
原則として、DANSの各コマンドは「-h」オプションを付けて実行するとマニュアルを表示します。
例えばdmainのマニュアルを表示したい時は次のように実行します。
$ dmain -h
また「-?」オプションを付けて実行するとコマンドの概略を表示します。
例えばdmainの概略を表示したい時は次のように実行します。
$ dmain -?
原則として、DANSのコマンドは<コマンド> <オプション> <データファイル>という形式で実行します。
しかし<データファイル>を指定せずに、データファイル処理コマンドとパイプ「|」で接続してデータ処理コマンドの出力結果を各コマンドに直接入力することもできます。
例えばDANSデータファイル「uso800.dns」の全項目の基礎統計量を求める場合と、selコマンドでuso800.dnsの項目番号2と項目番号4〜6のデータを選択し、それをstatistコマンドに直接入力して基礎統計量を求める場合は、それぞれ次のコマンドを実行します。
$ statist uso800.dns
$ sel -i=2,4-6 uso800.dns | statist
パイプ「|」で接続せずに<データファイル>を指定しないと、コマンドが標準入力からのデータを待ち続けます。
そのためコンピュータが止まってしまったように見えるので注意してください。
$ statist ← 端末の画面がこのまま止まってしまうので注意!