Не удается установить пакет R-forge, используя install.packages

Этот, вопрос, , спросил, , и, , и, , в списке рассылки R-sig-finance, но я не думаю, что это было задано в stackoverflow.

Это происходит следующим образом:

Где я могу получить последнюю версию пакета XYZ, размещенную на R-forge? Я попытался установить его с помощью install.packages, но это произошло:

> install.packages("XYZ",repos="http://r-forge.r-project.org")
Warning message: package ‘XYZ’ is not available (for R version 2.15.0)

Глядя на сайт R-forge для XYZ, я вижу, что пакет не удалось создать. Поэтому нет ссылки для загрузки источника. Есть ли другой путь получить исходный код? Как только я получу исходный код, как я могу превратить это в пакет, который можно загрузить с помощью library("XYZ")?

Ответ 1

R-Forge может не создать пакет по нескольким причинам. Может быть, что документация не была обновлена, чтобы отразить последние изменения в коде. Или, возможно, некоторые из зависимостей не были доступны во время сборки.

Вы можете проверить исходный код с помощью svn. Сначала выполните поиск проекта на R-Forge и перейдите на главную страницу проекта - например http://r-forge.r-project.org/projects/returnanalytics/ Нажмите ссылку SCM, чтобы перейти на страницу, подобную этой http://r-forge.r-project.org/scm/?group_id=579

Эта страница сообщит вам команду для использования для проверки проекта. В этом случае вы получаете

Этот проект SVN-репозиторий можно проверить через анонимный доступ с помощью следующих команд.

svn checkout svn://svn.r-forge.r-project.org/svnroot/returnanalytics/

Если вы находитесь в Windows, вы, вероятно, захотите загрузить и установить TortoiseSVN

После установки TortoiseSVN вы можете щелкнуть правой кнопкой мыши в окне проводника Windows и выбрать "SVN checkout". В поле "URL-адрес репозитория:" введите все, кроме "svn checkout" часть команды, которую вы нашли в R-Forge. В этом случае вы введите "svn://svn.r-forge.r-project.org/svnroot/returnanalytics/".

Когда вы нажмете OK, проект будет загружен в текущий каталог.

Если вы работаете в UNIX-подобной системе (или если вы установили инструменты для командной строки когда вы установили TortoiseSVN для Windows, который не является стандартным), вы можете введите команду, которую R-forge дал вам в вашем терминале (системный терминал, а не R-терминал)

svn checkout svn://svn.r-forge.r-project.org/svnroot/returnanalytics/

Это создаст новый каталог под текущим рабочим каталогом, который содержит все файлы в пакете. На верхнем уровне этого каталога будет подкаталог под названием "pkg". Этот конкретный проект (returnanalytics) содержит более одного пакета.

ls returnanalytics/pkg
#FactorAnalytics  MPO  PApages  PerformanceAnalytics  PortfolioAnalytics

Но в некоторых проектах R-forge есть только один пакет. например

svn checkout svn://svn.r-forge.r-project.org/svnroot/random/
#Checked out revision 14.
ls random/pkg
#DESCRIPTION  inst  man  NAMESPACE  R

Теперь, когда у вас есть локальная копия всего кода, если вы хотите иметь возможность установите пакет, вы должны сначала его создать.

СЛОВО ПРЕДОСТЕРЕЖЕНИЯ: Поскольку R-Forge не удалось создать пакет, есть хорошая вероятность что есть проблемы с пакетом. Поэтому, если вы просто его построите, вы можете найти что некоторые вещи не работают должным образом. В частности, вполне вероятно, что отсутствует или неполная документация.

Если вы работаете в UNIX-подобной системе, пакет можно создавать и устанавливать относительно легко. Для проекта с несколькими пакетами, таких как returnanalytics, если вы хотите установить, например. Пакет PortfolioAnalytics, вы можете сделать это как это

R --vanilla CMD INSTALL --build returnanalytics/pkg/PortfolioAnalytics 

"PortfolioAnalytics" - это имя каталога, содержащего пакет, который вы хотите создать/установить. Для проекта с одним пакетом вы можете создавать и устанавливать как это

R --vanilla CMD INSTALL --build random/pkg

Если вы хотите создать/установить пакет в Windows, см. этот вопрос и следуйте два ссылки, которые @JoshuaUlrich предоставили

Более подробную информацию можно найти в R Установка и администрирование, Руководство пользователя R-Forge и руководство SVN.

Ответ 2

Если (и только если) у вас есть подходящая инструментальная цепочка для вашей ОС, это может преуспеть:

# First download source file to your working directory
# As an example use browser to download pkg:partykit from: 
#  http://download.r-forge.r-project.org/src/contrib/partykit_1.1-2.tar.gz
# Move to working directory
# Or in the case of returnanalytics (which is a bundle of packages):
# http://r-forge.r-project.org/R/?group_id=579 and download the tar.gz (source)
# Then in R:

install.packages( "partykit_1.1-2.tar.gz", repo=NULL, type="source")
# for the first of the ReturnAnalytics packages:
install.packages( "Dowd_0.11.tar.gz", repo=NULL, type="source")

Это направление должно быть "кросс-платформенным". Я не уверен, что направления принятого ответа применимы к Mac (OSX). (Позже я подтвердил, что они "работают" на Mac, но обнаружил, что процесс больше связан с тем, что я предложил выше. Они приводят к каталогу, который содержит пакеты в форме, которая должна быть успешной с помощью R --vanilla CMD INSTALL --build pathToEachPackageSeparately)

Ответ 3

Также возможно, что для текущей версии пакета, который вы пытаетесь установить, требуется более новая версия R, например, вы можете увидеть ошибку, например:

"ERROR: это R - версия 2.15.0, для пакета PerformanceAnalytics требуется R >= 3.0.0"

то вы можете попробовать обновить свой R

или, если вы столкнулись с такой же ситуацией со мной, которая пытается использовать pqR (в настоящее время используется R версия 2.15), вы можете найти пакет, прошедший обновление:

http://cran.at.r-project.org/src/contrib/Archive/PerformanceAnalytics/

Вы можете попасть сюда с страницы пакетов R-Forge → "Стабильный выпуск: получить PerformanceAnalytics 1.4.3541 из CRAN" → Старые источники: архив PerformanceAnalytics

например, вы найдете пакет PerformanceAnalytics версии 1.1.0, просто требуется R >= 2.14

Удачи.

Ответ 4

Кроме того, вы можете установить конкретный пакет из GitHub, если он имеет репо в GitHub.

Я запустил install.packages('ggfortify') и получил

Предупреждающее сообщение: "package" ggfortify недоступен (для версии версии 3.3.2) "

ggfortify - это репо GitHub для того же пакета.

Библиотека devtools позволяет установить пакет из GitHub напрямую с помощью install_github('username/repo').

library(devtools)
install_github('sinhrks/ggfortify')