#r
#r
Вопрос:
Я создаю пакет R с рядом внутренних зависимостей. В частности, у меня есть 2 аналитические функции (назовите их FA1 и FA2), которые зависят от 2 функций, которые выполняют некоторую обработку данных (вызовите demo FT1 и FT2). Мой вопрос:
-
Как я должен структурировать свой пакет таким образом, чтобы FA1 и FA2 вызывали FT1 и FT2? Должен ли я определить файл .r для каждого (FA1.r , FA2 .r, FT1.r, FT2.r), Если да, то как я могу вызвать FT1 и FT2 для FA1.r , FA2.r ?
-
Или в каждом FA1.r и FA2.r я должен также определить FT1.r , FT2.r ?
РЕДАКТИРОВАТЬ: на основе некоторых комментариев ниже следует задать 3-й пункт, который может помочь решить проблему:
- Как я могу контролировать, какие функции видны пользователю, а какие предназначены только для внутренних целей пакета?
Спасибо.
Комментарии:
1. В вашем пакете на самом деле не имеет значения, определяете ли вы функции в разных файлах или в одном файле; это своего рода дело вкуса. Когда пакет собран, все функции, которые вы определяете, доступны для всех других функций в вашем пакете. Пользователям доступны только те, которые экспортированы из пространства имен, без вызова package:::function().
2. Хорошей ссылкой, которая поможет вам разобраться в этом вопросе, может быть этот пост R-bloggers . Лично я бы выбрал решение 1 и управлял экспортом с помощью ключевых слов roxygen2.
3. Хорошо, итак, как я могу контролировать, какие из них экспортируются и доступны пользователям, а какие нет?
Ответ №1:
Хорошо, итак, курс действий, который я решил предпринять, был:
создайте FT1.r , FT2.r неэкспортируемые функции (добавив точку перед их определением, то есть .FT1.r и .FT2.r в отдельном файле).
Спасибо за помощь, ребята.