Andrew Gelman recentemente lamentou a falta de um processo de atualização fácil para o R (provavelmente mais relevante no Windows que no Linux). Alguém tem um bom truque para fazer a atualização, desde a instalação do software até a cópia de todas as configurações / pacotes?
Essa sugestão estava contida nos comentários e é o que tenho usado recentemente. Primeiro você instala a nova versão e, em seguida, execute-a na versão antiga:
#--run in the old version of R
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")
Seguido por isso na nova versão:
#--run in the new version
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)
Respostas:
Apenas para completar, existem algumas maneiras de impedir que você tenha esse problema. Como Dirk disse, salve seus pacotes em outro diretório do seu computador.
Você pode alterar o
.Library
valor padrão usando a função.libPaths
tambémIsso colocará esse caminho como o primeiro valor na
.Library
variável e o tornará o padrão.Se você deseja automatizar isso ainda mais, é possível especificar isso no arquivo Rprofile.site, que você encontra no diretório / etc / do seu R build. Em seguida, ele será carregado automaticamente sempre que R for carregado, e você não precisará mais se preocupar com isso. Você pode simplesmente instalar e carregar pacotes do diretório especificado.
Finalmente, tenho um pequeno código incluído no meu Rprofile.site, permitindo-me reinstalar todos os pacotes quando instalo uma nova versão R. Você apenas precisa listá-los antes de atualizar para a nova versão R. Eu faço isso usando um arquivo .RData que contém uma lista atualizada com todos os pacotes.
Eu faço o packagelist.RData especificando
.Last()
no meu Rprofile.site. Isso atualiza a lista de pacotes se eu instalei alguns:Quando instalo uma nova versão R, apenas adiciono os elementos necessários ao arquivo Rprofile.site e todos os pacotes são reinstalados. Tenho que ajustar o Rprofile.site de qualquer maneira (usando contrastes de soma, adicionando o código extra para Tinn-R, essas coisas), para que não seja realmente um trabalho extra. Leva apenas um tempo extra para instalar todos os pacotes novamente.
Este último bit é equivalente ao que é dado na pergunta original como uma solução. Só não preciso me preocupar em obter a lista "instalada" primeiro.
Novamente, isso não funcionará perfeitamente se você tiver pacotes que não estão instalados no CRAN. Mas esse código é facilmente extensível para incluir também esses.
fonte
.Library
. No meu caso, ele aponta de volta para a pasta de instalação R se mantenha inalterado (que eu particularmente não gosto, mas bem)Esta é uma pergunta antiga, é claro, mas pode haver uma nova resposta fácil (funcionando apenas para Windows), que acabei de encontrar.
A melhor maneira de fazer isso é do sistema RGui. Todos os seus pacotes serão transferidos para a nova pasta e os antigos serão excluídos ou salvos (você pode escolher). Depois que você abrir o RStudio novamente, ele imediatamente reconhecerá que você está usando uma versão atualizada. Para mim, isso funcionou como um encanto,
Mais informações sobre {installr} aqui .
Simon
fonte
Duas sugestões rápidas:
Use os arquivos em lote do Gabor, que são considerados ferramentas que auxiliam, por exemplo, nas realocações desta biblioteca em massa. Advertência: Eu não os usei.
Não instale bibliotecas dentro da 'árvore de arquivos' da versão R instalada. No Windows, posso colocar R na versão C: / opt / R / R- $, mas colocar todas as bibliotecas em C: / opt / R / library / usando o seguinte snippet, pois alivia o problema em primeiro lugar:
fonte
O método sugerido acima não funcionará completamente se você tiver pacotes que não sejam do CRAN. Por exemplo, um pacote pessoal ou um pacote baixado de um site que não seja o CRAN.
Meu método preferido no Windows (atualizando 2.10.1 para 2.11.0):
R-2.10.0/library/*
paraR-2.11.0/library/
update.packages()
fonte
Com relação à solução fornecida na pergunta, pode não ser fácil executar sua versão mais antiga do R se você já instalou a nova versão. Nesse caso, você ainda pode reinstalar todos os pacotes ausentes da versão R anterior, da seguinte maneira.
(Observe que o argumento
list.files()
na primeira linha de código deve ser o caminho para o diretório da biblioteca da sua versão R anterior, onde estão todas as pastas de pacotes na versão anterior. No meu caso atual, isso é"/Library/Frameworks/R.framework/Versions/3.2/Resources/library"
. Isso será diferente se sua versão R anterior não é 3.2 ou se você estiver no Windows.)A
if
declaração garante que um pacote não esteja instalado sefor
loop.fonte
Seguindo a sugestão de Dirk, aqui está um código R para fazer isso no Windows: Como atualizar facilmente o R no Windows XP
Atualização (15.04.11): escrevi outro post sobre o assunto, explicando como lidar com problemas comuns da atualização do R no Windows 7
fonte
installr
que automatiza esse processo (atualmente apenas no Windows) r-statistics.com/tag/installr ou github.com/talgalili/installrinstall.packages(installr); library(installr); updateR(TRUE)
. No final,[1] TRUE
aparece. Pelo excelente pacote de Galili, passei do R 3.6.0 para o R 3.6.1 com muita facilidade. Obrigado Tal.Duas opções:
.libPaths("C:/R/library")
fonte
Estou no Windows 8 e, por algum motivo estranho, nunca consigo instalar pacotes usando minhas conexões com a Internet.
Geralmente, instalo-o usando o arquivo .zip do CRAN.
Depois passei do R 3.2.5 para o R 3.3.1.
Simplesmente copiei os pacotes de
C:\Path\to\packa\R\win-library\3.2
paraC:\Path\to\packa\R\win-library\3.3
.E então reiniciei a sessão R. Funcionou perfeitamente. Eu não verifiquei se TODOS os pacotes estão funcionando bem. Mas os que verifiquei estão funcionando perfeitamente bem. Espero que este hack funcione para todos.
Felicidades.
fonte
A resposta aceita pode funcionar se você tiver uma previsão, mas eu já havia me livrado da versão antiga, portanto não fui capaz de seguir essas instruções. As etapas descritas abaixo funcionaram para a atualização do OSX de 2.1 e 3.1.
ATUALIZADO: Para obter o diretório da sua versão mais recente (em vez de digitar 3.1 ou 3.2), você pode usar os comandos abaixo. O segundo converte diretamente na variável R, pulando
.
e..
e.DS_Store
, use:(Adicione
|pbcopy
ao final para copiá-lo diretamente para a área de transferência do Mac)Em R, você pode colar a variável gerada. Uma vez definido na nova versão do R, você pode percorrer os pacotes instalados a partir das instruções acima ...
fonte
para mim esta página é boa https://www.r-statistics.com/2013/03/updating-r-from-r-on-windows-using-the-installr-package/ ou outra opção é apenas instalar o novo opção e no final você coloca, por exemplo, no windows no meu pc
.libPaths (c ("D: /Documents/R/win-library/3.2", "C: / Arquivos de Programas / R / R-3.2.3 / library", "C: / Arquivos de Programas / R / R-3.2 .0 / library "," D: /Documents/R/win-library/2.15 ")
cada caminho da última versão, no meu caso, eu sempre coloco o primeiro caminho é "D: /Documents/R/win-library/3.2" corrigido e, em seguida, coloco o outro porque você não precisa copiar ou mover nenhum pacote, em minha sugestão basta chamá-lo
fonte
linux
+bash
+debian
+apt
usuários:Se você estiver instalando / atualizando para a versão mais recente do
R
, podemos assumir que você temroot
permissões. (Não é essencial, apenas torna o processo muito mais simples; por consistência, o script abaixo usasudo
para todas as instalações.) Como osR
pacotes também são instaladosroot
, é permitido colocá-los/usr/local/
.A chamada
curl
abaixo pressupõe que você já esteja interessado nosid
lançamento daR
última versão instável (conforme necessário ao criar / verificar umR
pacote), ou seja,cat /etc/apt/sources.list | grep 'sid' || exit 1
embora isso possa ser facilmente substituído por uma versão estável recente, por exemplo
buster
.Note que estou não utilizando uma chave como é geralmente recomendado . Isso não é essencial, principalmente se (como no script a seguir) instalarmos pacotes dentro de
R
si (Rscript -e
abaixo). Além disso, essas chaves tendem a quebrar / mudar a cada poucos anos. Portanto, é claro que você pode adicionar o seguinte prefácio ao arquivo aR.sh
seguir:sudo apt-key adv --keyserver keyserver.ubuntu.com \ --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
O pacote
array
of claramente não é exaustivo, mas fornece alguns exemplos que eu pessoalmente acho úteis. Uma nova instalação / atualização com o pacote , como abaixo, deve fornecer a versão mais recente de todos os pacotes 'recomendados' padrão (por exemplo ). Acredito que possa haver um pequeno atraso entre uma versão do CRAN e uma atualização para o pacote relevante . Portanto, você pode adicionar alguns desses itens abaixo se a versão mais recente de um pacote 'recomendado' for essencial.R
debian
r-recommended
survival
debian
array
R
Os
debian
pacotes instalados no processo abaixo também não são essenciais (para usor-base
) nem exaustivos, mas fornecem um não. de 'add-ons' que são importantes para um número razoável. deR
pacotes.Enfim ... coloque o seguinte em
R.sh
:Em seguida, executá-lo, por exemplo, assumindo no diretório já:
source R.sh
.Instalar pacotes (seja
debian
ouR
) um por um em um loop do shell é um pouco ineficiente, mas permite o rastreamento mais simples de erros, IMHO. Pode levar algum tempo, dependendo do não. deR
pacotes, então talvez seja mais fácil deixar correr durante a noite ...fonte
r-recommended
. 'r-base-devel' é conhecido comor-base-dev
(debian
pacote) - já foi incluído. Não sou avesso a usar uma chave de segurança (resposta atualizada). A resposta evita o uso de aPPA
= Personal Package Archives, pois dependem necessariamente de uma pessoa e, portanto, potencialmente falíveis. Como o próprio Michael Rutter diz (2012): "Se você usa o CRAN, não há razão para mudar para o PPA, pois os mesmos pacotes são fornecidos nos dois locais".