2012-04-02 5 views
1

私は主な機能に追加のオプションを追加し、主な機能の内容をそれに応じて変更するパッケージを使用しています。それ以外は、パッケージをそのまま使用したいと思います。Rでパッケージやクラスを継承する方法は?

これを行うにはどのような方法が最適ですか?どんな参考文献も感謝します。

+0

。あなたはいくつかの詳細を前に置くべきです。 –

+0

@DWinよく、ここで具体的にどのように役立つかわかりません。パッケージ全体を書き直すことなくパッケージの主な機能を変更する方法を知りたい。 –

+0

私が書いたように、私は自分の質問を解釈して、自分でパッケージを書いたことを意味しています。明らかになったように、そうではなかった。 –

答えて

2

、あなたの変更は、あまりにも、世界の他の地域で必要とされると思われる場合:

  1. 問い合わせメンテナ(packageDescription ("pkgName") $ Maintainer)、
  2. をあなたの変更を説明し、
  3. はコードとドキュメントへのパッチを添付Eメール?

あなた自身は、ローカルの周りに試してみたい/変更が必要な場合にのみ:

  • ? fix
  • ? assignInNamespace
  • はソースを取得(CRANのパッケージがFOSSである必要があり、より良いも参照ライセンスを読んでください)、シャネルに&パッケージをローカルにインストールしてください。

  • あなたは(余分な出力文のような)コードのビットを挿入する必要がある場合:? trace

+0

あなたの答えをありがとう。しかし、私はあなたが私の質問を理解するとは思わない。変更されたコードを公開するプロセスについては尋ねていません。私は既存のパッケージを変更してそれを試してみたい。 –

+0

@david、改訂版の回答を参照してください。 – cbeleites

0

これは私がやったことです。

  1. 指定されたパッケージのmain関数からコピーされた別の関数を作成します。
  2. 必要に応じて機能を変更してください。
  3. パッケージ(またはクラス)の内部関数を使用する必要がある場合は、関数名の前に<package name>:::を使用します。
  4. 結果を目的のクラスから継承させます。たとえば、

、許容できないほど曖昧な要求を思わclass(results) <- c("rpart","nnet")

+1

davidであり、これは 'fix'アプローチに近いものです。' fix'は結果の関数を元のものと同じ名前に割り当てます。オリジナルはあなたのバージョンで隠されています( 'pkgname :: function'でもアクセス可能です)。 – cbeleites

+0

@cbeleitesコメントをいただきありがとうございます。いい物。 –

+0

デビッド、歓迎です – cbeleites

関連する問題