есть ли способ отобразить сообщение, когда пользователь загружает 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
не молчит...