Non capisco il punto di.Prima funzione in R. La mia ragione è qualsiasi codice in .Rprofile sarà originato e eseguito quando R si avvia in ogni caso..Prima funzione in R
questo
.First<-function(){
library('devtools')
}
e questo
library('devtools')
in .Rprofile hanno esattamente lo stesso effetto.
Tuttavia, qui è un esempio che mostra .Prima può fare la differenza:
ad esempio 1, si può vedere X11.options() $ tipo diventa correttamente Xlib come stabilito in .Rprofile
>> cat .Rprofile
.First <- function() {
library(devtools)
}
setHook(
packageEvent("grDevices", "onLoad"),
function(...) grDevices::X11.options(type="Xlib")
)
>> Rscript -e 'X11.options()$type'
[1] "Xlib"
ad esempio 2, si può vedere X11.options() $ tipo è ancora cairo, il setHook in .Rprofile non ha preso effetto
>> cat .Rprofile
library(devtools)
setHook(
packageEvent("grDevices", "onLoad"),
function(...) grDevices::X11.options(type="Xlib")
)
>> Rscript -e 'X11.options()$type'
[1] "cairo"
- nel quale caso d o Devo assolutamente usare la prima funzione?
- perché. La prima ha fatto la differenza nell'esempio sopra?
Grazie!
È possibile salvare la funzione '.First' in' .RData', suppongo. R carica prima il file '.Renviron' quindi il file' .Rprofile' e poi il file '.RData'. Quindi, se si salva la funzione '.First' in' .RData', è possibile definire una diversa funzione '.First' per ciascun progetto. Penso che dovrebbe essere lo scopo di avere la funzione '.First'. –
@Narendra. OK, sono convinto. Perché non renderlo una risposta? –
@Narendra Più o meno il file di aiuto: * Una funzione .First (e .Last) può essere definita nei file appropriati '.Rprofile' o 'Rprofile.site' o sono stati salvati in '.RData'. * –