#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
объекта).