Ho alcuni file .Rdata che contengono funzioni salvate come definito da approxfun().modificare il corpo del testo degli oggetti funzione esistenti
Alcuni dei file di salvataggio pre-data la modifica approxfun dal pacchetto "base" per "stats", e così il corpo ha
PACKAGE = "base"
e il pacchetto sbagliato causa la funzione che sicuro. Posso correggere (myfun) e semplicemente sostituire "base" con "stats", ma voglio un modo automatico più ordinato.
Posso farlo in qualche modo con gsub() e body()?
posso ottenere il corpo del testo e sostituire lì con
as.character(body(myfun))
ma non so come trasformare che di nuovo in un "call" e sostituire la definizione.
(so che una soluzione migliore è quella di aver salvato i dati originariamente utilizzati da approxfun e semplicemente ricreare la funzione, ma mi chiedo se c'è un modo ragionevole per modificare quello esistente.)
Edit: ho trovato qui
What ways are there to edit a function in R?
possibile duplicato di [? Quali modi ci sono per modificare una funzione in R] (http://stackoverflow.com/questions/2458013/what-ways-are-there-to-edit-a-function-in-r) –
Ho provato 'body (foo) <- gsub (" PACKAGE = 'base' "," PACKAGE = 'stats' " , body (foo)) 'per te, ma body() non restituisce il testo, quindi non puoi usare la manipolazione del testo per cambiarlo. Ho verificato questo con @MrFlick –
potresti quindi scrivere la tua risposta in modo che questo post non sia più "senza risposta"? –