Создание пакета R, который определяет ссылочные классы

Я создаю пакет R Пакет определяет несколько ссылочных классов. Существует зависимость между классами, потому что один является базовым классом, а другие являются подклассами. Из-за этой зависимости файлы пакета должны быть загружены в определенном порядке: сначала базовый класс, затем подклассы. Однако, если повезет, R сначала загружает подклассы и жалуется, что базовый класс не определен.

Как заставить исходные файлы пакета выполняться в определенном порядке?

Мое текущее, "решающее" "решение" - поместить все определения классов в один исходный файл, с базовым классом, определенным первым. Поговорим о некрасивом. Должен быть лучший способ.

1 ответ

Решение

Я думаю Collate: Поле делает это для классов S4 и может помочь здесь. Из руководства по написанию расширений R, раздел 1.1.1

Поле "Сортировка" может использоваться для управления порядком сортировки файлов кода R в пакете, когда они обрабатываются для установки пакета. По умолчанию выполняется сопоставление в соответствии с локалью 'C'. Если присутствует, то в спецификации сортировки должны быть перечислены все файлы кода R в пакете (принимая во внимание возможные подкаталоги ОС, см. "Подкаталоги пакета") в виде списка разделенных пробелами путей к файлам относительно подкаталога "R". Пути, содержащие пробелы или кавычки, должны быть в кавычках. Специфичное для ОС поле сортировки ("Collate.unix" или "Collate.windows") будет использоваться вместо "Collate".

И, например, пакет 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
Другие вопросы по тегам