: Запускать код при первой установке или использовании пакета - PullRequest
7 голосов
/ 26 октября 2010

Я занят написанием пакета для клиента с небольшим знанием о R. Учитывая его сложную структуру данных, мне нужно настроить «базу данных» в R, содержащую тонны информации, полученной из набора электронных таблиц, которые они получают из другогоКомпания.Поскольку они не могут установить SQL или около того на своих компьютерах (у ICT есть некоторые проблемы с управлением питанием ...), я написал эмуляцию на R, основанную на определенной структуре каталогов.Теперь я хочу запустить это автоматически, но только при первой загрузке пакета.Что-то вроде .First.lib, но потом .VeryFirst.

Есть идеи, как загрузить фрагмент кода при первой загрузке пакета?Я не мог найти его где-нибудь в руководствах, поэтому все указатели приветствуются.

Ответы [ 2 ]

4 голосов
/ 26 октября 2010

Это в руководствах.

Обычно у вас есть два пути кода:

  1. пакеты без NAMESPACE могут использовать функцию .First.lib(), обычно из R/zzz.R

  2. * Пакеты 1012 * с NAMESPACE могут использовать функцию .onLoad(), также часто из R/zzz.R.

Я использовал это для таких приемов, как само обновление пакета (!!) при загрузке.Это требовало не использовать NAMESPACE и запускать utils::update.packages() перед фактической загрузкой двоичного кода.

0 голосов
/ 26 октября 2010

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

2010 08.xls 2010 09.xls

Вы можете использовать readline () для запроса новых диапазонов данных, а также сделать так, чтобы они тольковведите новый месяц.И если каталог когда-либо изменяется, нетрудно научить кого-то, как setwd (), или обновить его самостоятельно, используя скрипт, который проверяет что-то на вашем личном / корпоративном сервере.

Они действительно загружают R для запуска пакета?Или это все командная строка?

...