есть ли способ отобразить сообщение, когда пользователь загружает library(myCustomLibrary)? При загрузке я хочу отобразить сообщение, в котором пользователю сообщается, как запустить все тестовые функции.
Разработка библиотеки/пакета - сообщение при загрузке
Ответы (3)
Да. Вы можете использовать функции .onLoad, .onAttach или .First.lib, чтобы делать все, что хотите, когда пакет загружается. Я предлагаю посмотреть справку по этим функциям. Вы бы использовали .onLoad с пространством имен и .First.lib без него.
Одно соглашение заключается в том, что люди часто помещают эти команды в отдельный файл zzz.R, который используется только для кода, связанного с пакетами.
Быстрые пункты:
если у вашего пакета есть NAMESPACE, то
.onLoad()это место, где вы это делаетеесли в вашем пакете нет NAMESPACE, то
.First.lib()это место, где вы это делаетев любом случае используйте
packageStartupMessage()вместоcat(), чтобы у пользователей была возможность отключить это.
R/zzz.R, что сейчас в основном является соглашением. Я думаю, что вы можете сделать R/onLoad.R так же хорошо.
- person Dirk Eddelbuettel; 20.02.2014
.onAttach() вместо .onLoad(). Он не объяснил почему. r-pkgs.had.co.nz/r.html#r- код
- person jangorecki; 01.09.2014
Обновленный ответ (2019 г.):
В разделе справки "Хорошая практика" в ?.onAttach рекомендация теперь такая:
Загрузка пространства имен [= в
.onLoad] должна по возможности быть бесшумной, с сообщениями о запуске, заданными .onAttach. Эти сообщения (и любые важные сообщения из .onLoad) должны использоватьpackageStartupMessage, чтобы их можно было отключить там, где они будут отвлекать.
R CMD CHECK будет жаловаться, если .onLoad не молчит...