Как настроить сборку пакетов RStudio для работы на нескольких компьютерах

этот вопрос был задан другим пользователем на странице справки RStudio здесь но остался без ответа.

в принципе, я прошел все шаги:

(1) Установлен Xcode

(2) загруженные и установленные средства командной строки

(3) Установлен MacTex

(4) выбран каталог, содержащий пакет R с сопровождающим его файлом описания.

этот пакет скомпилирован просто отлично на Mac I сначала его построили. Теперь, однако, мне говорят, что RStudio не может обнаружить файл описания, хотя он находится прямо в каталоге сборки. Я приложил скриншот.

сообщение об ошибке я получаю это:

ERROR: The build directory does not contain a DESCRIPTION file so cannot be built as a package.

кто-нибудь знает чего мне не хватает? Я приложил скриншот для справки. Полное раскрытие информации: это работа для коммерческого применения.

Arrows point out that the DESCRIPTION file exists in the build directory

4 ответов


Ниже приведен план того, как я подошел к этому для пакета, который мы будем называть mypack.

обновить R и Rstudio

это должно быть первое, что вы делаете. Обновите все...

создать скелет пакет

использовать roxygen2 пакет для создания mypack пакет скелет. Из вашей IDE попробуйте следующее:

library(roxygen2)
package.skeleton('mypack')

посмотреть http://cran.r-project.org/web/packages/roxygen2/roxygen2.pdf дополнительные подробности.

изменить описание файла

отредактируйте файл описания с помощью считывателя, который позволяет мне видеть непечатаемые символы. Стоит проверить, нет ли в вашем файле каких-либо нечетных символов. RStudio-хороший редактор для использования.

сравните содержимое файла описания с чужими репозиториями github,на plyr описание файла.

кроме того, есть вопросы здесь С ответом, который объясняет, как используется файл описания.

сборка пакета

Я использую скрипт (ниже) для создания пакета из Rstudio, а не с помощью консервированных опций Rstudio. Мне не нравится не забывать переключаться между обычной IDE и каким-то проектом.

вам понадобится [devtools][3] установлен, чтобы сделать эту работу.

setwd('~/Documents/projects/Rcode')
# remove the old version
try(detach(name = "package:mypack",unload = TRUE))
# load the packages we need for building / documentation
library("roxygen2")  # could use "require"
# generate documentation
roxygenize(package.dir = "mypack")

# now we actually build and install the package
system("R CMD build mypack")
system("R CMD INSTALL --preclean mypack_1.00.tar.gz")
system("R CMD check mypack")
# check for old documentation
try(file.remove(file.path(getwd(),"mypack.pdf")))
# generate new documentation
system("R CMD Rd2pdf mypack")
# and finally, make it available.
library("mypack")

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

создание пакета документации

у меня есть R-markdown в заголовках всех моих функций, поэтому файлы справки создаются как ./man/*.Rd (где * - это имя функции) автоматически, когда я выполнить этот скрипт. Опять же, взгляните на plyr github, чтобы почувствовать это.

Я также написал виньетку для этого пакет. Это .Rnw файл, который можно редактировать в RStudio или любом другом текстовом редакторе. Этот.Файл Rnw в основном latex со встроенными кусками knitr. Редактор Rstudio имеет возможность скомпилировать это независимо от самого пакета. Это кажется отличным решением, и вышеупомянутый скрипт перекомпилирует виньетки всякий раз, когда я обновляю свой код, что является хорошей проверкой на все.

кросс-платформенная установка

Я знаю, что этот скрипт работает на нескольких компьютерах Mac, но никогда не имел несчастья использовать машину windows для компиляции. Однако мой коллега использует скомпилированный пакет в windows без каких-либо проблем.

ресурсы

полезные ресурсы для этого есть:


Я только что столкнулся с такой ошибкой (за исключением того, что я ранее смог создать пакет без инцидентов).

оказывается, моя ошибка была вызвана плохо сформированным файлом описания. Исправление синтаксиса там позволило моему пакету построить.


недавно у меня была точно такая же проблема - мой пакет не будет компилироваться под RStudio с ошибкой, говорящей, что каталог пакета не содержит файл описания. Я решил проблему, изменив кодировку файла описания на ANSI.


изменения:

Описание: Line1

         Line2 

         Line3.

в:

Описание: Line1 Line2 Line3.

Он будет работать!