Estou em um processo de descobrir como usar meu cluster universitário. Possui 2 versões do R instaladas. Todo o sistema R 2.11 (Debian 6.0) e R 2.14.2 em local não padrão.
Estou tentando usar o MPI junto com a neve. O código que estou tentando executar é o seguinte
library(snow)
library(Rmpi)
cl <- makeMPIcluster(mpi.universe.size()-1)
stopCluster(cl)
mpi.quit()
Funciona sem os problemas no R 2.11. (Eu inicio o script com mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R
). Agora, quando tento fazer isso com o R 2.14.2, recebo a seguinte mensagem:
Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:
Portanto, parece que o R carrega a versão do pacote de neve compilada para o R 2.11. Instalei o snow sob R 2.14 na minha pasta pessoal e adicionei as seguintes linhas ao meu código:
.libPaths("/soft/R/lib/R/library")
.libPaths("~/R/x86_64-pc-linux-gnu-library/2.11")
print(.libPaths())
print(sessionInfo())
print(version)
E a saída antes do erro confirma que eu realmente estou executando o R 2.14.2 e minha pasta de pacotes R é a primeira no caminho de pesquisa. Mas ainda recebo o erro.
Então, minha pergunta é como determinar qual versão do pacote é carregada no R? Eu posso ver com installed.packages
todos os pacotes que estão instalados, então talvez haja alguma função que lista informações semelhantes para pacotes carregados?
Respostas:
Você pode usar
sessionInfo()
para conseguir isso.No entanto, conforme os comentários e a resposta abaixo, existem opções melhores
[1] '0,3,9'
Ou:
fonte
packageVersion()
é muito melhor na maioria dos casossessionInfo
. Veja a Nota de? SessionInfo: "As informações sobre pacotes e espaços para nome 'carregados' são a versão atual instalada no local em que o pacote foi carregado: pode estar errado se outro processo estiver alterando os pacotes durante a sessão." Então: se você quer saber se o pacote está carregado ou não, use melhor"Rmpi" %in% loadedNamespaces()
; se você quiser saber qual versão está instalada em um local específico, use melhorpackageVersion(lib.loc = ...)
Você pode usar
packageVersion
para ver qual versão de um pacote está carregadaEmbora pareça que você queira ver qual versão do R você está executando, nesse caso, a
sessionInfo
sugestão de Justin é o caminho a seguir.fonte
Para verificar a versão do R, execute:
R --version
Ou depois que você estiver no shell R, imprima o conteúdo de
version$version.string
EDITAR
Para verificar a versão dos pacotes instalados, faça o seguinte.
Após carregar a biblioteca, você pode executar
sessionInfo ()
Mas para conhecer a lista de todos os pacotes instalados:
OU para extrair uma versão específica da biblioteca, depois de extrair as informações usando a
installed.package
função acima, use o nome do pacote na primeira dimensão da matriz.O texto acima imprimirá as versões da biblioteca da RANN e da biblioteca de gráficos.
fonte
version
.packinfo[, "Version", drop=F]
dá um resultado ainda mais bonito (o nome do pacote não é duplicado).Tecnicamente falando, todas as respostas no momento estão erradas.
packageVersion
não retorna a versão do pacote carregado. Ele vai para o disco e busca a versão do pacote a partir daí.Isso não fará diferença na maioria dos casos, mas às vezes faz. Tanto quanto posso dizer, a única maneira de obter a versão de um pacote carregado é o bastante hackeado:
onde
pkg
é o nome do pacote.Edição: Não tenho certeza quando esta função foi adicionada, mas você também pode usar
getNamespaceVersion
, isso é mais limpo:fonte
`:::`(pkg, .__NAMESPACE__.)$spec[["version"]]
é um sinônimo doasNamespace()
método de obter a versão do pacote.packageVersion()
mostra apenas o resultado principal,installed.packages()
mas se você possui várias versões do mesmo pacote e carrega uma especificamente, ela não fornecerá a resposta certa.Você pode tentar algo como isto:
package_version(R.version)
getRversion()
fonte
Solução GUI:
Se você estiver usando o RStudio, poderá verificar a versão do pacote no
Packages
painel.fonte
Use o método R
packageDescription
para obter a descrição do pacote instalado e, para a versão, use apenas$Version
:fonte
Com base nas respostas anteriores, aqui está uma maneira alternativa simples de imprimir a versão R, seguida pelo nome e versão de cada pacote carregado no espaço para nome. Funciona no notebook Jupyter, onde tive problemas de execução
sessionInfo()
eR --version
.Fora:
fonte
Pergunta antiga, mas não entre as respostas, é o meu comando favorito para obter uma visão geral rápida e curta de todos os pacotes carregados:
Para ver qual versão está instalada em todos os pacotes carregados, basta usar o comando acima para subconjunto
installed.packages()
.Alterando o número da coluna (3 para a versão do pacote), você pode obter qualquer outra informação armazenada
installed.packages()
em uma matriz de fácil leitura. Abaixo está um exemplo para o número da versão e dependência:fonte
Use o código a seguir para obter a versão dos pacotes R instalados no sistema:
fonte
Basta usar
help(package="my_package")
e olhar para a versão mostrada.Isso pressupõe que não há outras versões de pacotes na mesma
.libPaths
.fonte
Search () pode fornecer uma lista mais simplificada dos pacotes anexados em uma sessão (ou seja, sem as informações detalhadas fornecidas por sessionInfo ())
search {base} - R
Descrição da documentação : Fornece uma lista dos pacotes anexados. Procurar()
fonte