Сделать R-пакет, который просто загружает другие пакеты и экспортирует все функции

Можно ли сделать R-пакет, который просто экспортирует все функции из других R-пакетов? Есть ли другой способ классифицировать и упорядочивать функции пакета в руководстве, файлах кода и т. д.?


person tover    schedule 04.04.2015    source источник
comment
в порядке, отличном от алфавитного? вы можете написать функцию, которая проверяет, установлены ли пакеты, устанавливает, если нет, и помещает ее в свой собственный пакет. не будет ли пакет, в котором только это было бы излишним?   -  person rawr    schedule 04.04.2015
comment
Если есть много функций для разных задач, которые можно разделить на группы, алфавитный порядок практически бесполезен, если только вы уже не знаете, как должны использоваться функции, и забыли только некоторые второстепенные детали (и помните их названия). И я также не думаю, что очень полезно хранить весь код в одной папке R, если вы хотите что-то в ней найти. Я действительно хотел, чтобы можно было поместить файлы кода в подпапки, а также соответствующим образом сгенерировать руководство. Пакет, который загружает все пакеты, которые принадлежат друг другу, кажется лучшим возможным решением в настоящее время.   -  person tover    schedule 05.04.2015


Ответы (1)


Да, у вас может быть пакет, который вызывается только для его зависимостей. В качестве яркого примера можно привести теперь заархивированный gregmisc. package, который начинался как огромный набор различных функций, в конечном итоге был разбит на отдельные пакеты. Хотя gregmisc все еще был доступен в CRAN, он не содержал никаких функций, только эту функцию запуска:

.onAttach <- function(libname, pkgname)
{
  packageStartupMessage(
          "All functionality of the `gregmisc' package has been moved",
          "into the four 'g' packages: gdata, gtools, gmodels, and gplots. ",
          "This package is retained to make it easy to install and load",
          "the full set. Please consider loading these packages directly."
                        )
}

А потом просто были зависимости от новых отдельных пакетов, описанных в файле DESCRIPTION:

Package: gregmisc
Title: Greg's Miscellaneous Functions
Description: Description: The former gregmisc bundle is a repository
        for a variety of useful functions.  The gregmisc package has
        been split into a set of more focused packages: gdata, gmodels,
        gplots, gtools.  The purpose of this 'new' gregmisc is to
        provide an easy way to access the original combined
        functionality.  To this end, it simply depends on all of the
        new packages so that these will installed/loaded when this
        package is installed/loaded.
Depends: gdata, gmodels, gplots, gtools
Version: 2.1.5
Author: Gregory R. Warnes.
Maintainer: Gregory R. Warnes <[email protected]>
License: GPL-2
Packaged: 2013-06-28 21:48:38 UTC; warnes
NeedsCompilation: no
Repository: CRAN
Date/Publication: 2013-06-29 00:15:57
person Thomas    schedule 04.04.2015
comment
Большое спасибо! Работает отлично! - person tover; 05.04.2015