Problemas de atualizacao (i.e., vc atualiza o R e seus pacotes e coisas magicamente deixam de funcionar) costumam acontecer quando vc deixa de fazer os upgrades com alguma frequencia. O R possui dispositivos eficientes para avisar-lhe de mudancas, mas se os autores do seu pacote preferido nao os utilizam, entao e' algo para vc reclamar para os autores dos pacotes. Explico:
O R possui uma atualizacao "majoritaria" a cada ano (em geral, em abril; costumava ser a cada 6 meses, mas os guRus julgaram que 1 ano e' melhor). Nesta atualizacao, o R muda de 3.1.x para 3.2.x, etc... Junto com ele, muda a maioria dos pacotes. Os desenvolvedores dos pacotes recebem a recomendacao de informar ao usuario final que a API mudara'... Se eles nao o fazem, ai' o problema e' outro.... Os pacotes mantidos pelo core (por exemplo, o pacote Matrix) usam essa estrategia, que funciona assim:
- O pacote hoje tem uma funcao hipotetica chamada "minhaFuncao" em abril de 2014;
- O autor decide substituir a "minhaFuncao" por "funcaoComUmNomeMelhor", mas nao altera o pacote ainda;
- Em abril de 2015, o autor implementa "funcaoComUmNomeMelhor" e usa o metodo ".Deprecated" para avisar o usuario que "minhaFuncao" sera substituida por "funcaoComUmNomeMelhor"... Nesse periodo, as duas funcoes sao validas no R;
- Em abril de 2016, o autor remove "minhaFuncao" e substitui o metodo ".Deprecated" por ".Defunct". Nesse ponto, todo mundo que tentar usar "minhaFuncao" recebera uma mensagem de erro e a mensagem de que "minhaFuncao" foi substituida por "funcaoComUmNomeMelhor";
- Em abril de 2017, o autor remove o ".Defunct"...
O problema e' que nem todo desenvolvedor esta' disposto a fazer isso... Mas, note que isso nao e' problema do R, mas do modo que o desenvolvedor distribuir o seu software. Por sinal, o prazo de 1 ano nao e' estipulado, pode ate' ser gosto do desenvolvedor usar um ciclo de 2 meses, ou 6... sei la'... mas existem as ferramentas.
Como eu procedo em geral? Uso ferramentas de pesquisa reprodutivel como Sweave e knitr. Em particular, ao montar um script, eu tenho os registros exatos de cada versao de pacote que estou utilizando... Assim, posso garantir um cenario de reprodutibilidade.
b