★データ解析備忘録★

ゆる〜い技術メモ

CRANは闇なのか

はじめに

こんな話があります。

www.slideshare.net

RのパッケージをCRANに登録するのは闇であるという内容です。一方で、そんなに闇ではないという意見もあります。

estatapiパッケージがCRANで公開されました。 - Technically, technophobic.

ThankYouStarsで感謝の気持ちをスターで伝えよう

闇なのか?

先日私も {MlBayesOpt} パッケージで晴れてCRANデビューしたのですが、アクセプトされるまで4回リジェクトされたのでかなり闇でした。個人的には、闇かどうかは

  • どういうパッケージか
  • パッケージの規模(関数の数・ドキュメントの量)

によるのかなあと思います。当たり前といえば当たり前ですが。

以下では、ありがちな「直してね」の内容を紹介しながら思いを綴りたいと思います。

よくある「直してね」

単純なスペルミス

これは、 devtools::release() 関数を実行してる途中で「これはスペルミスじゃない?」と聞かれるのと、Win-Builder に上げたときにも聞かれるのと、CRANにアップする前の問題です。が、意外とアップロード直前でスペルミスに気づくことが多いので注意が必要です。

小文字、大文字問題

たぶん一番指摘される間違いなのかなと思います。具体的には、主に DESCRIPTION ファイルで

  • タイトル
  • 手法の名前

あたりで指摘されることが多いようです。

タイトルについては、単語の先頭は前置詞などを除いて基本大文字にしないと怒られます。

手法の名前は、基本小文字だと思うのですが、例えば {MlBayesOpt} であれば Bayesian optimization のようにBだけ大文字にしろと言われたので、正直良くわかりません。指摘されたら素直に直すのでいいと思います。

既存パッケージとの違いは?

これはラッパーパッケージや、すでに存在する手法を利用して何かするパッケージのときは言われる可能性が高いです。必ず DESCRIPTION ファイルのDesriptionフィールドに書きましょう。僕はREADMEに書いて無駄にリジェクトが増えました...

レファレンス載っけろよ

これは、統計や機械学習手法などをカバーしたパッケージだと怒られるかもしれません。そんなときは、DESCRIPTION の Description フィールドで手法の名前を出したときに 書いてやれば良いです。例えば、 {xgboost} パッケージの DESCRIPTION には以下のように書かれています。

Extreme Gradient Boosting, which is an efficient implementation of the gradient boosting framework from Chen & Guestrin (2016) <doi:10.1145/2939672.2939785>.

カッコの前後にはスペースを!

細かいことですが、DESCRIPTION ファイル内で class(hoge....) みたいに書いてると「スペース入れろ」と怒られます。

まとめ

以上のようなことを事前に気をつけて入れば、無駄にリジェクトされて精神を消耗することも減るでしょう(たぶん)。 そして、CRANをそんなに闇と感じなくなることでしょう(たぶん)。

「自分はこんなことを指摘された!」みたいなのも絶賛募集中です。