Я нахожусь в процессе выяснения, как использовать мой университетский кластер. На нем установлены 2 версии R. Общесистемный R 2.11 (Debian 6.0) и R 2.14.2 в нестандартном месте.
Я пытаюсь использовать MPI вместе со снегом. Код, который я пытаюсь запустить, следующий
library(snow)
library(Rmpi)
cl <- makeMPIcluster(mpi.universe.size()-1)
stopCluster(cl)
mpi.quit()
Работает без проблем на R 2.11. (Запускаю скрипт с помощью mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R
). Теперь, когда я пытаюсь сделать это с помощью R 2.14.2, я получаю следующее сообщение:
Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:
Таким образом, кажется, что R загружает пакет Snow версии, скомпилированный для R 2.11. Я установил snow под R 2.14 в свою домашнюю папку и добавил следующие строки в свой код:
.libPaths("/soft/R/lib/R/library")
.libPaths("~/R/x86_64-pc-linux-gnu-library/2.11")
print(.libPaths())
print(sessionInfo())
print(version)
И вывод перед ошибкой подтверждает, что я действительно запускаю R 2.14.2, и моя папка с пакетами R находится первой в пути поиска. Но я все еще получаю ошибку.
Итак, мой вопрос, как мне определить, какая версия пакета загружена в R? Я могу видеть installed.packages
все установленные пакеты, так что, может быть, есть какая-то функция, которая выводит похожую информацию для загруженных пакетов?
Ответы:
Вы можете использовать
sessionInfo()
для этого.Однако, согласно комментариям и ответу ниже, есть лучшие варианты
[1] 0,3,9
Или:
источник
packageVersion()
намного лучше в большинстве случаевsessionInfo
. См. Примечание? SessionInfo: «Информация о« загруженных »пакетах и пространствах имен - это текущая версия, установленная в том месте, из которого был загружен пакет: может быть неправильно, если другой процесс изменял пакеты во время сеанса». Итак: если вы хотите знать, загружен пакет или нет, лучше использовать"Rmpi" %in% loadedNamespaces()
; если вы хотите узнать, какая версия установлена в определенном месте, лучше использоватьpackageVersion(lib.loc = ...)
Вы можете использовать,
packageVersion
чтобы увидеть, какая версия пакета загруженаХотя кажется, что вы хотите увидеть, какую версию R вы используете, в этом случае предложение @ Джастина
sessionInfo
- это путьисточник
Для проверки версии R выполните:
R --version
Или после входа в оболочку R выведите содержимое
version$version.string
РЕДАКТИРОВАТЬ
Для проверки версии установленных пакетов сделайте следующее.
После загрузки библиотеки вы можете выполнить
sessionInfo ()
Но чтобы узнать список всех установленных пакетов:
ИЛИ, чтобы извлечь конкретную версию библиотеки, как только вы извлечете информацию, используя
installed.package
функцию, как описано выше, просто используйте имя пакета в первом измерении матрицы.Выше будут распечатаны версии библиотеки RANN и графической библиотеки.
источник
version
.packinfo[, "Version", drop=F]
дает еще более приятный результат (имя пакета не дублируется).Технически говоря, все ответы на данный момент неверны.
packageVersion
не возвращает версию загруженного пакета. Он идет на диск и получает версию пакета оттуда.Это не будет иметь значения в большинстве случаев, но иногда это так. Насколько я могу судить, единственный способ получить версию загруженного пакета - довольно хакерский:
где
pkg
имя пакетаРЕДАКТИРОВАТЬ: Я не уверен, когда эта функция была добавлена, но вы также можете использовать
getNamespaceVersion
, это чище:источник
`:::`(pkg, .__NAMESPACE__.)$spec[["version"]]
является синонимомasNamespace()
метода получения версии пакета.packageVersion()
только показывает лучший результат,installed.packages()
но если у вас есть несколько версий одного и того же пакета, и вы загрузите его специально, это не даст вам правильный ответ.Вы можете попробовать что-то вроде этого:
package_version(R.version)
getRversion()
источник
GUI решение:
Если вы используете RStudio, вы можете проверить версию пакета на
Packages
панели.источник
Используйте метод R,
packageDescription
чтобы получить описание установленного пакета, а для версии просто используйте$Version
как:источник
Основываясь на предыдущих ответах, вот простой альтернативный способ печати R-версии, сопровождаемый именем и версией каждого пакета, загруженного в пространство имен. Это работает в ноутбуке Jupyter, где у меня были проблемы с бегом
sessionInfo()
иR --version
.Вне:
источник
Старый вопрос, но не среди ответов - моя любимая команда, чтобы получить быстрый и краткий обзор всех загруженных пакетов:
Чтобы увидеть, какая версия установлена из всех загруженных пакетов, просто используйте приведенную выше команду для подмножества
installed.packages()
.Изменяя номер столбца (3 для версии пакета), вы можете получить любую другую информацию, хранящуюся в
installed.packages()
удобочитаемой матрице. Ниже приведен пример для номера версии и зависимости:источник
Используйте следующий код для получения версии пакетов R, установленных в системе:
источник
Просто используйте
help(package="my_package")
и посмотрите на показанную версию.Это предполагает, что нет других версий пакета в том же
.libPaths
.источник
Search () может дать более упрощенный список прикрепленных пакетов в сеансе (т. Е. Без подробной информации, предоставленной sessionInfo ())
search {base} - R
Описание документации : выдает список вложенных пакетов. Поиск()
источник