もう一つのデータ処理パッケージ(rptパッケージ)2018版について

2018/05/15

*注意: 2018年5月の13日〜15日に rpt_main.zip をダウンロードした方は、
rpt32_new.zip に含まれている rpt32.rb を上書きコピーして下さい。
\rpt\bat\rpt32.rb を上書きします。
「s 送るメニューに登録」がちゃんと機能しないケースがあったのを修正。

    

 rptパッケージは、MS-Windowsで動作する ruby, 統計R, LaTeX などの
コマンド群を簡単に使い始められるよう取りまとめたものです。

 パッケージの導入方法などについては、下記を参照してください。

 rpt2017版と異なる点としては、
pythonを組み入れたことが最も大きな違いでしょうか。

IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』


《このページの目次》


    

1. zip圧縮ファイル

 rpt2018版のzip圧縮ファイルは次のとおりです。

(1) パッケージ本体にかかわるファイル

 ruby, python の64bit版は、近いうちアップロードする予定です。

☆ プロから教わるプログラミング講座が3,000円から【ストアカ】

    

(2) md5, sha-256のコード

 前述のzip圧縮ファイルの md5 および sha-256 のコードを掲載しておきます。

 間違いなく原本ファイルであるかどうかをチェックする際に参照して下さい。

    

[補足] Windowsでの md5, sha-256 の確認方法

 ’CertUtil’ というコマンドを使うと md5, sha-256 などを確認できます。

 rpt_main.zip がカレントディレクトリにある状態で次ぎの2行を実行します。

CertUtil -hashfile rpt_main.zip MD5 >output.txt
CertUtil -hashfile rpt_main.zip SHA256 >>output.txt

 書き出された output.txt に md5, sha-256 のコードが書かれているはずです。

    

(3) サンプルスクリプト


2. 組み入れているソフトウェア

 組み入れているのは必ずしも最新バージョンではありませんが、
複数のパソコンで動作させてみてトラブルなく動作するバージョンを選択しました。

 なお、rubyのライブラリは、付属のサンプルスクリプトを動かすのに
必要最小限のものをインストールしました。

 過去のrptパッケージよりも組み込んだライブラリが少なくなっています。

☆ 知識・スキルの販売サイト【ココナラ】

    

a. プログラム言語 ruby ver 2.3.3

 rpt2017版と同じバージョンです。

 ver 2.4.4, 2.5.1 を試したところ
win32oleというライブラリの動作に首をかしげたくなる部分があり、
2.3.3 のままにしました。
(win32oleについては私の知識不足かもしれません。)

 各種ライブラリのバージョンは更新してあります。

 なお、今回、rails(Webアプリケーション)や Rroonga(全文検索)
といったライブラリをインストールしていません。

 必要に応じて追加して下さい。

*参考サイト: RubyInstaller for Windows Downloads

    

b. プログラム言語 python ver 2.7.13

 pythonは、WinPythonの主要部分(python本体部分)を組み入れました。

 既に python 3.6 や 3.7 が公開されていますが、
Windows上で python3 を使う場合、パソコンによっては
pythonが想定するdllファイルがなくて動作させることができない
という経験を何度かしています。

 python2 についてはそうした経験はありません。

 ということで、ver 2.7.13 を組み入れました。

 とはいえ、python3 を使いたいこともあるので(私自身がそうです)
python3用のzip圧縮ファイルを別途アップロードしました(前述のとおり)。

*参考サイト: WinPython download | SourceForge.net

    

c. 統計解析ソフトR ver 3.4.4

 これは、2018/05の現時点で最新だとおもいます。

 パッケージとして、レポート生成のための knitr, rmarkdown は組み込み済みです。

 また、統計Rからpythonを利用するための reticulate のほか、
大規模データの高速処理 ーdata.table、dplyrーで取り上げられている
data.table, dplyr もインストール済みです。

*参考サイト: The Comprehensive R Archive Network

    

d. w32tex

 w32texは、Windows上で動作する LaTeX です。

 2018/04/30 に関連ファイルをダウンロードして展開しました。

 展開したファイル群は、rpt2017版と同じです。

*参考サイト: rptパッケージで導入したw32texについて

 なお、Cドライブ以外にrptパッケージを入れた場合、
lualatexコマンドでpdfを生成しようとすると、
「フォントをロードできない」という趣旨のエラーが出て、
pdfを生成できないかもしれません。
(サンプルスクリプトにも lualatex を使うものがあります。)

 そのときは、\rpt\w32tex\xtra\luaotfload_reset.bat を実行して下さい。

 luatex関係のキャッシュを一度クリアして、
フォントに関するキャッシュを再構築します。

    

e. ドキュメント変換ツール pandoc ver 2.03

 ver 2.06, 2.11, 2.2 を試したのですが、
なぜか私のところでは正常に動作しません。

 そこで、ver 2.03 を組み入れました。

*参考サイト:

    

f. テキストファイルへの変換ツール xdoc2txt ver 2.16.1

 xdoc2txtは、Excel, Word, pdf, 一太郎などのファイルを
テキストファイルに変換するものです。

 というより、テキストを抽出するという方が正確でしょうか。

 ver 2.16.1 の 32bit版を組み入れてあります。

*参考サイト: xdoc2txt


3. 「送る」メニューに登録する項目の変更

 rpt_main.zip を解凍すると、\rpt\bat の下に
rpt_set.bat というバッチコマンドがあります。

 それを実行すると「送る」メニューに次の三つの項目が登録されます。
(rpt_unset.bat を実行すれば消去されます。)

 最初の二つは従来と同じですが、三つ目が違います。

 以前は「r rubyの実行」でしたが、pythonも組み入れたので
「rpt32 スクリプト実行」という項目にしました。

 以下、その詳細を述べます。

新品も中古も激安PC勢ぞろい!パソコン買うなら楽天市場

    

(1) 「rpt32 スクリプト実行」で実行できるスクリプト類

 従来どおり rubyスクリプトを実行できます。

 WindowsのExplorer(マイコンピュータ)で test.rb に焦点を当てた上で
「送る」メニューの「rpt32 スクリプト実行」を選択すると、
ruby.exe によって test.rb が実行されます。

 test.py に焦点を当てて同様の操作をすれば
python.exe によって test.py が実行されます。

 「rpt32 スクリプト実行」は、受け取ったファイルの拡張子に応じて
コマンドを起動させます。

 拡張子と起動コマンドの対応は次のとおり。

 拡張子は、大文字でも小文字でもどちらでもかまいません。

 また、拡張子が .txt であっても、
test.rb.txt とか test.py.txt というファイル名の場合は
それぞれ ruby.exe, python.exe によって実行されます。

 test.R.txt も Rcmd.exe によって実行されます。

 ただし、test.bat.txt, test.cmd.txt は実行されず
エラーになるのでご注意ください。


(2) 標準出力と標準エラー出力の扱い

 従来と同じように、標準出力は X_OUT.TXT に書き出され、
標準エラー出力は X_ERROR.TXT に書き出されます。
(なお、スクリプト実行後、これらのファイルサイズが0なら消去されます。)

 ruby, python の標準出力&標準エラー出力のほか、
test.bat, test.cmd の場合も同様の書き出しが行われます。

 ただし、統計Rの test.R にはこの仕様は適用されません。

 test.R を実行したときは、そのログが X_LOG.TXT に書き出されます。

    

 X_OUT.TXT, X_ERROR.TXT の書き出しを抑制したいときは
スクリプトの1行目か2行目にコメントとして
(no redirect) という13文字を書いておいて下さい。

 半角スペースをいれて 13文字です。

 途中でユーザーの入力を求めるようなスクリプトやバッチは、
(no redirect) を書き込んでおくのがいいとおもいます。


(3) 環境変数との関係

 「送る」メニューの「rpt32 スクリプト実行」を呼び出した場合、
環境変数 PATH が変更され、また、いくつかの環境変数が設定されます。

 これは一時的な変更・設定で、
スクリプトの実行が終了すると環境変数は元の状態に戻ります。

 PATH についていうと、ruby, python, 統計R, w32tex のコマンドに
パスが通った状態でスクリプトが実行されます。

 なので、test.bat の中で ruby や python のフルパスを書かなくても、
単に ruby, python と書くだけで
「rpt32 スクリプト実行」経由であればちゃんと実行されます。

 たとえば、pythonの pandas というライブラリをインストールするための
test.bat の中身は次のように書けます。

@echo off
python -m pip install pandas

 ただ、もし rptパッケージ以外の python が既にインストールされていて、
それにパスが通してある場合は、
おそらく rptパッケージの python が実行されるとはおもいますが、
ほんとにそうなるかは不確実です。

 確実に rptパッケージの python を起動させたいときは下のようにします。

@echo off
%PYTHON_PATH% -m pip install pandas

 環境変数 PYTHON_PATH には、C:\rpt\python\python.exe のような
python のフルパスがセットされています。

    

 「rpt32 スクリプト実行」では次の環境変数がセットされます。
(rptパッケージがCドライブに入っている場合を想定)

 その他、R_HOME, R_LIBS, R_USER がセットされます。


(4) 複数のファイルを引き渡したときの挙動

 Explorer(マイコンピュータ)で複数のファイルを選択した上で
「送る」メニューの「rpt32 スクリプト実行」を呼び出した場合

 たとえば test.rb, data.txt の二つを選択したとすると

ruby.exe test.rb data.txt ↓

 上記のようにコマンドが実行されます。

 test.rb, data01.txt, data02.txt の三つを選択したときは

ruby.exe test.rb data01.txt data02.txt ↓
ruby.exe test.rb data02.txt data01.txt ↓

 上の2行のうち、どちらになるかは不定です。

 Explorerで複数のファイルを選択した場合、
どの順番で「送る」メニューに送られるかは分かりません。

 「rpt32 スクリプト実行」は、送られてきたファイルの中から
test.rb とか test.py のようなスクリプトと思われるファイルを最初に持ってきます。

 ですが、それ以外のファイルについて順番を調整したりはしません。

 もし、スクリプトと見られるファイルが複数あった場合は
そのうちのどれが実行されるかは不定です。

 なので、そうした複数選択はしないのが無難です。

 なお、test.R のような統計Rのスクリプトと合わせてファイルを指定しても
合わせて指定したファイルは無視されます。


4. DOS窓のオープンおよびrpt32.cfgによるフォルダ指定

 rubyやpythonをコマンドラインで起動させたいときは
Windowsのデスクトップに設けられている
「rpt32 commandline」をクリックします。

 そうすると DOS窓が開きます。

 rpt_main.zipに含まれている rpt_set.bat を実行すると、
この「rpt32 commandline」がデスクトップに設けられます。

 DOS窓が開いた時点で、「送る」メニューの関連で述べた
環境変数のあれこれが設定された状態になっています。

 ruby, python, 統計R, w32tex のコマンドにパスが通っています。

古いPCに新品だった頃の速さと軽さを取り戻す【次世代型クリーニング・最適化ソフト】

    

(1) 処理の内実(rpt32.rbの役割)

 「rpt32 commandline」をクリックすると、次のように ruby が起動されます。

C:\rpt\ruby\bin\ruby.exe C:\rpt\bat\rpt32.rb ↓

 この rpt32.rb の中で、cmd.exe が子プロセスとして実行されます。

 それが DOS窓のオープンとなります。

 また、rpt32.rbは、cmd.exeを子プロセスとして実行する前に
環境変数の設定を行います。

 実は、前述の「送る」メニューの「rpt32 スクリプト実行」の場合も
この rpt32.rb が実行され、引き渡された引数を処理します。

 拡張子に応じたコマンドが子プロセスとして実行され、
標準出力・標準エラー出力の調整が行われます。

    

(2) rpt32.cfgにおけるフォルダの指定

 「rpt32 commandline」をクリックして DOS窓を開いたとき、
カレントディレクトリはユーザーのホームディレクトリになります。

 別のフォルダをカレントディレクトリにしたい場合は、
rpt32.cfg というファイルにしたのような1行を書き加えます。
(rpt32.cfgは、rpt32.rb と同じフォルダに置きます。)

home_dir: D:\work

 そうすると、DOS窓が開いたときに
D:\work がカレントディレクトリになります。

 もし D:\work というフォルダが存在しなければ
ユーザーのホームディレクトリがカレントディレクトリになります。

    

 rpt32.cfg では、ruby, python の所在ディレクトリを指定することもできます。

 たとえば rpt32.cfg に下の2行を書き入れたとします。

ruby_dir: ruby25
python_dir: python3

 この場合、rptというフォルダの直下にある ruby25, python3 というフォルダに
それぞれ ruby, python がインストールされているとみなされます。

 つまり、\rpt\ruby25\bin\ruby.exe および
\rpt\python3\python.exe が起動コマンドとして採用されます。

 ruby25 というフォルダの下に ruby ver 2.5.1 を入れておけば、
それが実行されるようになります。

 python3 というフォルダの下に python ver 3.6.4 を入れておけば
それが実行されます。

 rpt_python3.zip を解凍すれば python3 というフォルダができます。

 なお、ruby, python のフォルダを指定した場合、
「rpt32 スクリプト実行」と「rpt32 commandline」をクリックしたときの
環境変数の値がそれに応じて変わります。

RUBY_PATH → C:\rpt\ruby25\bin\ruby.exe
PYTHON_PATH → C:\rpt\python3\python.exe

 もちろん PATH の値も ruby25, python3 を示唆するものに変わります。

    

*要注意: rpt32.cfg を書き換えて ruby のフォルダを変更したときは
rpt_set.bat を実行し直すのが無難です。

 ruby.exe が存在するのと同じフォルダに
gem.bat などいくつかバッチコマンドがあります。

 それらバッチコマンドの中には C:\ とか D:\ のように
固定ドライブ名が書かれているものがあります。

 rpt_set.bat は、そのドライブ名を適切なものい書き換えます。


5. 補足事項

 「rpt32 スクリプト実行」は、実は test.rmd, test.kmd
といった拡張子のファイルも処理対象とします。

 そうした点について補足を記します。

ネスカフェ

    

(1) rmdファイル, kmdファイルの処理

 test.rmd のような拡張子が .rmd のファイルを
「rpt32 スクリプト実行」に引き渡すと、
それを処理するための統計Rのスクリプトが自動生成されて実行されます。

 拡張子が .rmd のファイルは、
統計Rと pandoc を組み合わせて
レポートを生成するための原稿ファイルです。

 rpt_sample02.zip に rmdファイルのいくつかが含まれています。

    

 一方、test.kmd のような拡張子が .kmd のファイルを
「rpt32 スクリプト実行」に引き渡すと、
それを処理するための統計Rのスクリプトと rubyスクリプトが
自動生成されて実行されます。

 拡張子が .kmd のファイルは、
統計Rと rubyのkramdownを組み合わせて
レポートを生成するための原稿ファイルです。

 同じく rpt_sample02.zip に kmdファイルのいくつかが含まれています。

 rmdファイル, kmdファイルに関する説明の詳細は下記を参照して下さい。

rptパッケージとrmarkdown

 rpt2017版では「送る」メニューに
i386_rmarkdown とか i386_RmdRuby を設けて
処理するファイルに応じてユーザーがどちらかを選択するようになっていました。

 今回はファイル名の拡張子を .rmd.kmd にしておいて
どちらも「rpt32 スクリプト実行」で処理するように変更しました。

    

(2) 拙作 exlap.rb などの修正

 私が自作した rubyスクリプトの exlap.rb などを
rptパッケージに組み入れてあります。

 そのいくつかを少しだけ修正しました。

 exlap.rb は、Excelを操作するためのライブラリですが、
ワークブック内に新しいワークシートを設けた場合、
その新シートに独自のメソッドが付与されないというバグがありました。

 そのため、rpt_sample.zip に含まれているサンプルの
basic01.rb.txt がちゃんと動作しませんでした。

 そのバグを修正しました。

    

 rrxwin.rb は、rubyから統計Rを操作するためのライブラリですが、
アスキー文字罫線の表を生成するためのメソッド(text_table)が
正常に動作するよう改めました。

 rubyのライブラリ terminal-table の仕様変更に対応させたものです。

 rrxeuc.rb, rrxutf.rb (文字コードが違うだけで基本的に rrxwin.rb と同じ)も
同じように修正しました。

 また、MS-Wordを操作するための wrdap.rb にも
text_table メソッドが含まれているので、そちらも修正しました。

    

 私が自作した ruby用ライブラリ一式が
ruby_libs.zip に入っています。

 これを解凍すると setup.rb, unset.rb が出てきます。

 setup.rb を実行すればライブラリ一式がインストールされ、
unset.rb を実行すればライブラリ一式が消去されます。

 rpt_main.zip には既に一式が含まれていますが、
別のバージョンの ruby を導入したようなときに利用して下さい。

    

(3) 通知音について

 rpt2017版までは、「送る」メニューの「スクリプト実行」が終了する度に
通知音をならすようにしていました。

 ただ、Windows10 ではその音がちょっと煩わしい感じなので、
ならさないようにしました。

 とはいえ、次のようにすれば音がなるようになります。

 rpt32.rb および d2txt_x.bat の中に

#require "win32/sound"

 上の1行があります。

 この行頭のシャープ記号を削除すると、通知音がなるようになります。

    

(4) pythonライブラリの置き場所について

 私が自作した pythonライブラリ(pdex.py, pyrcmd.py)は、
\rpt\with\python というフォルダに置いてあります。

 このフォルダに置いてある pythonライブラリは、
どのpythonスクリプトからでもimportできます。

 \rpt\python\Lib\site-packages というフォルダの中に
RptWith.pth というファイルを置いてあります。

 このファイルの中身は次の1行です。

\rpt\with\python

 この RptWith.pth というファイルの示唆によって
\rpt\with\python というフォルダにある pythonライブラリが
どのpythonスクリプトからでもimportできるようになっています。


 rptパッケージ2018版については以上のとおりです。

 パッケージに含まれているソフトウェアはいずれもフリーウェアですが、
そのライセンスはソフトウェアによって異なります。

 各々のソフトウェアに関するWebを確認してください。


※ 当ページに掲載した広告一覧


トップページへ