Как добавить документацию в пакет (не в функции пакета)

#r #devtools #r-package #roxygen2 #r-usethis

Вопрос:

Я пытаюсь заставить документацию отображаться для фактического пакета (а не для его функций, поскольку это делается автоматически при документировании пакета) с помощью функций help() или ? .

Например, используя следующее:

 ?dplyr
 

Мы получаем:

 dplyr-package {dplyr}   R Documentation
dplyr: A Grammar of Data Manipulation
Description
To learn more about dplyr, start with the vignettes: browseVignettes(package = "dplyr")

Author(s)
Maintainer: Hadley Wickham hadley@rstudio.com (ORCID)

Authors:

Romain François (ORCID)

Lionel Henry

Kirill Müller (ORCID)

Other contributors:

RStudio [copyright holder, funder]

See Also
Useful links:

https://dplyr.tidyverse.org

https://github.com/tidyverse/dplyr

Report bugs at https://github.com/tidyverse/dplyr/issues

[Package dplyr version 1.0.7 Index]
 

Я создал базовый пакет cats , используя учебник Хиллари Паркер: https://hilaryparker.com/2014/04/29/writing-an-r-package-from-scratch/. Я установил его и подтвердил, что он работает правильно, например, получил справочные документы для одной функции:

 ?cat_function
 

Дает:

 cat_function {cats} R Documentation
A Cat Function
Description
This function allows you to express your love of cats.

Usage
cat_function(love = TRUE)
Arguments
love    
Do you love cats? Defaults to TRUE.

Examples
cat_function()
[Package cats version 0.0.0.9000 Index]
 

Однако, пытаясь получить документы для самого пакета:

 ?cats
No documentation for ‘cats’ in specified packages and libraries:
you could try ‘??cats’
 

В справочной функции я могу нажать Index , а затем я получу страницу «Справка», и я также могу оттуда нажать DESCRIPTION file , но это определенно не похоже на то , что help(cats) будет выводиться.

Как я могу получить тот же help() звонок для своей cats посылки? Я думаю, что, должно быть, прочитал все учебники по созданию пакета, но увидел только кое-что о добавлении виньеток, которые кажутся чем-то другим (хотя я пытался добавить виньетку, а справочные документы все еще не появлялись). Я также попытался добавить файл readme, но, увы, тот же результат. В чем фокус? =)

Редактировать: На самом деле я использовал usethis through devtools для установки, document() но я не думаю, что это что-то изменит, так как я не видел эту конкретную форму документации по пакетам, задокументированную ни в одном из учебных пособий.

Ответ №1:

Так как вы используете usethis , вы можете это сделать usethis::use_package_doc() . Смотрите документы здесь.

Вы также можете прочитать книгу Хэдли о пакетах R, в которой объясняется, что это делает.

Комментарии:

1. Боже, потрясающе! Именно то, что я искал! Протестировал его, и он прекрасно работает! Я потратил много времени на эту книгу и на эту конкретную страницу. Но поиск (Ctr F) по запросу «use_package_doc» не дает никаких результатов. Не могли бы вы, пожалуйста, указать мне, где он это описывает?

2. Я бы тоже подумал, что create() это позаботится и об этом для вас! Это кажется довольно логичным шагом для настройки вместе со всем остальным ИМХО. Еще раз спасибо, что поделились решением.

3. Вы правы — он не указывает название функции. Я не совсем понимаю, почему это так. Он действительно тратит процесс на то, чтобы сделать это вручную, хотя в разделе 10.6 (в основном, создайте «имя пакета. R’ файл и документ NULL объекта).