Bom fluxo de trabalho para atualizar os módulos R em torno das atualizações do R-cran?

3

Eu gosto que o R atualize com frequência para me oferecer os melhores novos pacotes, mas isso parece representar um problema para meus scripts R em cronogramas.

Notei que toda vez que o ubuntu updater atualiza meu pacote r-base, quando tento executar meus scripts, ele diz algo como " there is no library(XML) ".

Então eu tenho que ir " update.packages("XML") " para obter a nova versão do pacote que é compatível com a minha nova versão do R.

Eu tenho muitos pacotes instalados, então eu me encontro regularmente rastreando-os e fazendo comandos longos como " update.packages(c("XML", "ggplot2", "timeseries")) ".

Quando me esqueço de fazer isso depois de uma atualização, todos os meus scripts do R cron falham.

Alguém tem um bom fluxo de trabalho para verificar automaticamente quais pacotes eu já instalei e atualizá-los quando eles precisam ser atualizados?

    
por Mittenchops 03.04.2012 / 22:37

1 resposta

4

Você pode adicionar uma chamada install.packages() em seu script cron, para que ele instale todos os pacotes atuais antes de executar o resto dos seus trabalhos do cron.

install.packages recebe um vetor, e você pode manter o arquivo com os pacotes que deseja instalar em outro local e, em seguida, carregá-lo automaticamente no script de atualização do cron.

installed.packages() retorna um vetor de pacotes já instalados, então você pode usar %in% para chamá-lo nos pacotes ainda não instalados:

desired.packages <- c("plyr","taRifx","ggplot2")
missing.packages <- ! desired.packages %in% installed.packages()[,1]
if( any(missing.packages) ) { 
   install.packages( desired.packages[missing.packages] )
}

Edit: Possivelmente melhor solução

Como sugestão no bate-papo : de JoshuaUlrich:

Coloque isso no seu .Rprofile.

local({
  .libPaths("/home/evilgenius/R/library")
})

Então você deve ser capaz de executar apenas update.packages() depois que o Ubuntu limpar tudo, e a monarquia será restaurada.

Esta solução requer mais cautela que os pacotes que não funcionam com a versão atual do R não sejam transportados.

    
por Ari B. Friedman 31.05.2012 / 02:27