Si consideri il seguente codice R:R: funzioni annullando momentaneamente e la portata/namespace
local({
lm <- function(x) x^2
lm(10)
})
Questo sostituisce temporaneamente la funzione lm
, ma una volta che è stato eseguito local
sarà "essere tornato alla normalità". Mi chiedo il motivo per cui lo stesso approccio non sembra funzionare in questo prossimo semplice esempio:
require(car)
model <- lm(len ~ dose, data=ToothGrowth)
local({
vcov <- function(x) hccm(x) #robust var-cov matrix
confint(model) # confint will call vcov, but not the above one.
})
La funzione confint
utilizza la funzione vcov
per ottenere errori standard per i coefficienti, e l'idea è quella di utilizzare un robusto Var- cov matrix ignorando temporaneamente vcov
, senza eseguire "manualmente" o alterare le funzioni.
Sia vcov che confint sono funzioni generiche, non so se questo è il motivo per cui non funziona come previsto. Non è l'esempio specifico a cui sono interessato in quanto tale; piuttosto la lezione concettuale. Si tratta di uno spazio dei nomi o di un "problema" dell'ambito?
Questo è geniale, non avevo familiarità con il pacchetto proto, ma mi sembra piuttosto utile. Ho continuato a leggere la vignetta, ed è una buona lettura. Grazie per aver fatto lo sforzo! – Stefan