RでシンプルにHTTPサーバーを起動させるにはservrパッケージ

PythonでHTTPサーバーを起動させるコマンドを知ったのですが、RユーザーとしてはできるかぎりPythonに依存しない生活を送りたいので、Rでできないものかと探してみたらありました。
ちなみにPythonは下記です。

Python -m SimpleHTTPServer

PythonはさておきRで起動させる場合は下記になります。

install.packages("servr")
library(servr)
servr::httd()

これだけです。すごく簡単ですね。servrの現時点でのバージョンは0.11で、2018年10月23日にリリースされています。更新されたのは割と最近のようです。

起動後に下記のようなログがでてくるので、その中で止め方のコマンドが表示されます。それでプロセスを止めましょう。

To stop the server, run servr::daemon_stop("4473627000") or restart your R session Serving the directory /Users/<user-name>/R/httpserver/httpdocs at http://127.0.0.1:4321

などと、ディレクトリを指定するとそこがルートディレクトリになるので都度引数で指定していきましょう。

servr::httd("httpdocs")

ちなみにプロセスIDを引数に指定しなくても止まったので面倒ならなくても良いかもしれません(が、servr::httd()は複数起動できるので、プロセスIDを指定しない場合は全部プロセスが止まるようです)。

2019/02/08 追記

servr::httdの戻り値がプロセスIDなので、つまるところこちらで良さそうです。

install.packages("servr")
library(servr)
pid <- servr::httd(<HTTP_DOC_ROOT>) # <HTTP_DOC_ROOT>でサーバー起動
servr::daemon_stop(pid) # サーバー終了

2019/02/08 追記終わり

またservr::httwは引数に特定のディレクトリやファイルを指定することでそのファイルを監視し続けてくれるようで、変更があったら自動で切り替えてくれるようです。

servr::server_configでポート番号などが変えられるようです。

R(RStudio)だけで色々とできる幅が増えた気がしました。

TableauのログはUnicodeで出力されるのでRのコンソールで確認する

きっかけはTableauのログ(主にエラーの箇所)を調べる時に日本語のエラーメッセージがUnicode化されて表示されているのでちょっとすぐにはわからなくて困っていたことが始まりなのですが。

たまたまR(RStudio)のコンソールに入力することがあり、見てみたらUnicodeはそのまま日本語化されて表示されたので便利だなと思った次第です。

“TableauのログはUnicodeで出力されるのでRのコンソールで確認する” の続きを読む

RでCSVファイルの入出力(CP932文字コード指定など)

RでCSVファイルの入出力のパターンを備忘録として。

Shift-JIS(CP932)で保存しないと文字化けでエクセルで正しく表示されない歯がゆさ。
RStudioの文字コードの設定はこちらの記事をご参照いただくとして、ファイルの入出力の話です。文字コードをRでCP932に変換するというより、ファイルの文字コードを指定して読み込みます。

“RでCSVファイルの入出力(CP932文字コード指定など)” の続きを読む

Rで文字をUnicodeに変えるときはstringiパッケージ

たまに忘れるので備忘録として書いておきます。

Rでパッケージを作るときには日本語(マルチバイト)が使えないので、「プロパティファイルを作って読み込ませたい」みたいなニーズがあるとUnicode変換して持っておく必要があります。

“Rで文字をUnicodeに変えるときはstringiパッケージ” の続きを読む