Как загрузить пакет, не устанавливая его в R? - PullRequest
8 голосов
/ 30 марта 2011

Я создал пакет R, но не хочу, чтобы мои пользователи устанавливали его перед использованием.

Есть ли способ загрузить пакет без его установки?

Например, если у меня есть пакет mypackage.tar.gz, есть ли что-то вроде

library("mypackage.tar.gz")

Ответы [ 2 ]

10 голосов
/ 30 марта 2011

Я присоединюсь к «припеву», предложив вам действительно установить пакет.

Сказав это, вы можете взглянуть на пакет devtools Хэдли, который будетпозволяет загружать пакеты в рабочую область без выгрузки в глобальную рабочую область.

Пакет должен быть распакован или разархивирован и следовать стандартной структуре пакета R.

Для того чтобыработать, однако, ваши пользователи должны были бы установить пакет devtools, так что ... я не уверен, что это какой-то выигрыш для вас.

4 голосов
/ 30 марта 2011

Если вам нужно только загрузить код без его установки, возьмите необработанный скрипт R и отправьте его на исходный код:

source(myScript.R)

Если у вас есть разные функции, вы можете создать скрипт R, который просто загружает все необходимые исходные файлы. Что я иногда делаю при разработке, так это назову все мои функции F_some_function.R и мои классы Class_some_function.R. Это позволяет мне получить основной файл, содержащий следующий код:

funcdir <- "C:/Some/Path"
files <- dir(funcdir)
srcfiles <- c(grep("^Class_",dir(funcdir),value=T),
              grep("^F_",dir(funcdir),value=T)
)

for( i in paste(funcdir,srcfiles,sep="/")) source(i)

Если вы предоставите им файл tarred, они могут разархивировать себя, используя untar() перед поиском основного файла.

Но, честно говоря, пожалуйста, используйте пакет. Вы загружаете все в глобальной среде (или в указанной среде, если используете local = T), но теряете всю функциональность пакета. Установка пакета не доставляет хлопот, а удаление ни того, ни другого.

Если речь идет о правах записи на диск C (что является единственной возможной причиной не использовать пакет, который я встретил в моей машине), можно легко установить другое местоположение библиотеки. R 2.12 фактически делает это самостоятельно в Windows. Смотри ?.libPaths()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...