Не удается установить пакет R-forge с помощью install.packages
Это вопрос задается снова и снова и снова в списке рассылки R-sig-finance, но я не думаю, что об этом спрашивали в stackru.
Это выглядит так:
Где я могу получить последнюю версию пакета 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")
?
4 ответа
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 Explorer и выбрать "SVN checkout". В поле "URL хранилища:" введите все, кроме части команды "svn checkout ", которую вы нашли в R-Forge. В этом случае вы должны ввести "svn://svn.r-forge.r-project.org/svnroot/returnanalytics/".
Когда вы нажмете ОК, проект будет загружен в текущий каталог.
Если вы работаете в 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 Installation and Administration, руководстве пользователя R-Forge и руководстве SVN.
Если (и только если) у вас есть соответствующий набор инструментов для вашей ОС, тогда это может быть успешным:
# 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
)
Также возможно, что текущая версия пакета, который вы пытаетесь установить, требует более новой версии R, например, вы можете увидеть ошибку вроде:
"ОШИБКА: это R версии 2.15.0, для пакета" PerformanceAnalytics "требуется R >= 3.0.0"
тогда вы можете попробовать обновить свой R
или, если вы столкнулись с той же ситуацией со мной, которая пытается использовать pqR (в настоящее время использует версию 2.15 R), вы можете найти устаревший пакет здесь:
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.
Удачи
Кроме того, вы можете установить конкретный пакет из GitHub, если он имеет репозиторий на GitHub.
Я побежал install.packages('ggfortify')
и получил
Предупреждающее сообщение: "пакет" ggfortify "недоступен (для версии R 3.3.2)"
ggfortify был репозиторием GitHub для того же пакета.
devtools
библиотека позволяет устанавливать пакет из GitHub напрямую с install_github('username/repo')
,
library(devtools)
install_github('sinhrks/ggfortify')