Ho esaminato la guida per update.packages(..., checkBuilt = TRUE)
e non sono chiaro sul perché uno non vorrebbe avere TRUE
come predefinito. L'impostazione predefinita è FALSE
.Aggiornamento pacchetti in R - impatto di checkBuilt = TRUE o FALSE
Questa domanda ha due parti. (1) Qualcuno può fornire una spiegazione chiara dell'uso di questo argomento e delle motivazioni per FALSE
o TRUE
?
Come ho capito, se si aggiorna R, allora questo potrebbe avere risultati diversi - se i pacchetti non sono stati aggiornati, quindi FALSE
non causerà la modifica delle librerie locali con pacchetti aggiornati, mentre TRUE
causerà più (tutti?) pacchetti da aggiornare. L'opzione predefinita (FALSE
) può conferire un vantaggio in termini di velocità: verranno aggiornati meno pacchetti. La stabilità è incerta: una nuova versione di R potrebbe funzionare meglio con un nuovo pacchetto, oppure potrebbe non esserlo (ad esempio se ci sono regressioni/bug nel nuovo pacchetto) e potrebbe non funzionare con la versione precedente del pacchetto (la compatibilità con le versioni precedenti non è garantita). Altri pro e contro non sono ovvi per me. (E potrei sbagliare abbastanza qui - ecco perché chiedo un chiarimento come parte 1.)
(2) Tuttavia, se uno non ha cambiato la versione installata di R, allora non dovrebbero avere lo stesso risultato? Vedere this post per un esempio in cui sembra che la semplice chiamata di update.packages()
abbia creato problemi, anche se la versione di R non è cambiata.
Non è una risposta, ma ecco la mia ipotesi: l'argomento 'checkBuilt' è stato introdotto in r31400 (2004), vedi anche http://cran.r-project.org/bin/windows/base/old/2.1.0/NEWS.rw2010.A quel tempo, l'introduzione dell'argomento con default 'FALSE' significava che il comportamento predefinito non cambiava, cosa che a me sembra più sensata. Per quanto ne so, il valore predefinito non è mai cambiato in seguito. Inoltre, immagino che il core di R potrebbe essere riluttante a riguardo, poiché probabilmente sarebbe necessario un lungo annuncio simile ad annunciare funzioni come deprecate (e causerebbe migliaia di domande di utenti ignari ...) – cbeleites
@cbeleites Grazie per aver risposto! Come saprai, sei l'autore del post a cui mi sono collegato, quindi speravo che tu potessi inserire un nuovo background. :) Capisco questa riluttanza a cambiare - sembra una spiegazione plausibile per il default originale e la sua persistenza. Quindi, nel presente, mi chiedo se gli utenti dovrebbero ignorare il valore predefinito. – Iterator
Sou, è possibile sovrascrivere l'impostazione predefinita abbastanza facilmente. Anche se penso che non valga lo sforzo per 'update.packages' (lo faccio più regolarmente per cose come il wrapping' print' attorno alla trama basata sulla griglia - anche se anche questo non è più necessario con 'Sweave' (' RweaveLatex') opzione 'stampa = TRUE'). E quindi è molto più semplice aggiornare i pacchetti che ridurli. – cbeleites