2

Rパッケージを作成しています。パッケージは、いくつかの参照クラスを定義します。1 つが基本クラスで、他のクラスがサブクラスであるため、クラス間には依存関係があります。この依存関係のため、パッケージ ファイルは特定の順序でロードする必要があります。最初に基本クラス、次にサブクラスです。しかし、運が良ければ、R は最初にサブクラスをロードし、基本クラスが定義されていないと不平を言っています。

パッケージのソース ファイルを特定の順序で強制的に実行するにはどうすればよいですか?

私の現在の「解決策」は、基本クラスを最初に定義して、すべてのクラス定義を1つのソースファイルに入れることです。醜い話。もっと良い方法があるはずです。

4

1 に答える 1

5

Collate:フィールドは S4 クラスに対してそれを行い、ここでも役立つと思います。R 拡張機能の記述マニュアルのセクション1.1.1から

「Collat​​e」フィールドは、パッケージ インストール用に処理されるパッケージ内の R コード ファイルの照合順序を制御するために使用できます。デフォルトでは、「C」ロケールに従って照合します。存在する場合、collat​​e 仕様はパッケージ内のすべてのR コード ファイルを一覧表示する必要があります (可能な OS 固有のサブディレクトリを考慮に入れます。「パッケージのサブディレクトリ」を参照してください)。空白または引用符を含むパスは引用符で囲む必要があります。「Collat​​e」の代わりに、OS 固有の照合フィールド (「Collat​​e.unix」または「Collat​​e.windows」) が使用されます。

たとえば、XML パッケージには

Collate: AAA.R DTD.R DTDClasses.R DTDRef.R SAXMethods.S XMLClasses.R
        applyDOM.R assignChild.R catalog.R createNode.R dynSupports.R
        error.R flatTree.R nodeAccessors.R parseDTD.R schema.S
        summary.R tangle.R toString.S tree.R version.R xmlErrorEnums.R
        xmlEventHandler.R xmlEventParse.R xmlHandler.R
        xmlInternalSource.R xmlOutputDOM.R xmlNodes.R xmlOutputBuffer.R
        xmlTree.R xmlTreeParse.R htmlParse.R hashTree.R zzz.R
        supports.R parser.R libxmlFeatures.R xmlString.R saveXML.R
        namespaces.R readHTMLTable.R reflection.R xmlToDataFrame.R
        bitList.R compare.R encoding.R fixNS.R xmlRoot.R serialize.R
        xmlMemoryMgmt.R keyValueDB.R solrDocs.R XMLRErrorInfo.R
        xincludes.R namespaceHandlers.R tangle1.R
于 2012-10-05T01:54:47.047 に答える