<div dir="ltr">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:<div>

<br></div><div>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:</div>

<div><br></div><div>- O pacote hoje tem uma funcao hipotetica chamada "minhaFuncao" em abril de 2014;</div><div>- O autor decide substituir a "minhaFuncao" por "funcaoComUmNomeMelhor", mas nao altera o pacote ainda;</div>

<div>- 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;</div>

<div>- 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";</div>

<div>- Em abril de 2017, o autor remove o ".Defunct"...</div><div><br></div><div>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.</div>

<div><br></div><div>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.</div>

<div><br></div><div>b</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">Em 14 de julho de 2014 11:46, Luiz Roberto Martins Pinto <span dir="ltr"><<a href="mailto:luizroberto.uesc@gmail.com" target="_blank">luizroberto.uesc@gmail.com</a>></span> escreveu:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Caros amigos da lista.</div><div><br></div>Eu sou um iniciante no uso do R.<div><br></div><div>Depois que comecei a utilizá-lo a análise de dados ficou mais divertida e criativa. Sinto-me livre... incrível!!! O uso do Tinn-R também é um fator motivacional para mim, devido à simplicidade de uso.</div>


<div><br></div><div>Todavia, como iniciante, tenho tido algumas dificuldades em referência às atualizações do R e dos pacotes.</div><div><br></div><div>Certa vez atualizei o R e algumas funções/pacotes deixaram de funcionar. Quase entrei em pânico, posto que jamais pensei que a simples atualização do R pudesse causar tanto transtorno. Acabei gastando muito tempo procurando erros no script, até que alguém sugeriu que o script poderia não rodar pela simples atualização do R.</div>


<div><br></div><div>A atualização de pacotes é outro problema. Quando atualizei o R na última vez uma função que utilizava parou de funcionar. Então precisei de refazer parte importante do script.</div><div><br></div><div>


Diante do exposto vejo que preciso ter:</div><div>1) cópia dos pacotes;</div><div>2) cópia da versão do R utilizada em cada script</div><div><br></div><div>É assim que vocês procedem?</div><div><br></div><div>É possível que o R seja melhorado/atualizado sem prejuízo no uso dos scripts?</div>


<div><br></div><div>É possível que os autores dos pacotes façam suas atualizações sem perda de funcionalidade das funções anteriormente liberadas? Ex. liberar o LSmatrix e LSmeans (informando que esta [e uma versão mais atualizada) e manter o popMeans e popMatrix? </div>


<div><br></div><div>É querer muito? Talvez, para o expert em R estas questões sejam simplórias, e até idiotas, mas para alguns poucos (espero) simples usuários como eu estas questões são relevantes.</div><div><br></div><div>


Luiz Roberto.</div><div><br></div><div><br></div><div><br clear="all"><div><div>Luiz Roberto Martins Pinto<br>Prof. Pleno/DCET/UESC</div><div>Laboratório de Estatística Computacional</div><div>Universidade Estadual de Santa Cruz</div>


<div>Ilhéus-Bahia<br><br><a href="mailto:luizroberto.uesc@gmail.com" target="_blank">luizroberto.uesc@gmail.com</a><br>skype: lrmpinto</div>
<div><a href="http://lattes.cnpq.br/2732314327604831" target="_blank">http://lattes.cnpq.br/2732314327604831</a> <br><br><br></div></div>
</div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>

<div dir="ltr"><a href="http://about.me/benilton" style="margin:0px;padding:0px;border:0px;outline:0px;font-size:14px;font-family:proxima-nova-1,proxima-nova-2,Tahoma,Helvetica,Verdana,sans-serif;vertical-align:baseline;color:rgb(43,130,173);text-decoration:none;line-height:18.200000762939453px" target="_blank"><table border="0" cellpadding="0" cellspacing="0" style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;border-spacing:0px">

<tbody style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline">

<td colspan="3" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;height:30px"> </td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline">

<td align="left" valign="top" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:top;line-height:1"><div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline">

<img src="http://d13pix9kaak6wt.cloudfront.net/signature/me-badge.png" alt="Benilton Carvalho on about.me" width="48" height="48" style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;display:block"></div>

</td><td style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;width:8px"> </td><td align="left" valign="middle" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:middle;height:48px;line-height:0.9">

<div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:bold;font-style:inherit;font-size:18px;font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif;vertical-align:baseline;line-height:1;color:rgb(51,51,51)">

Benilton Carvalho</div><div style="margin:2px 0px 0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-size:12px;font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif;vertical-align:baseline">

about.me/benilton</div></td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td colspan="3" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;height:20px">

 </td></tr></tbody></table></a></div>
</div>