J'ai quelques fichiers .Rdata qui contiennent des fonctions enregistrées comme défini par approxfun().Modifier le corps du texte des objets de fonction existants
Certains des fichiers de sauvegarde antérieurs à la modification approxfun du paquet « base » pour « stats », et donc le corps a
PACKAGE = "base"
et le mauvais paquet provoque la fonction à l'échec. Je peux corriger (myfun) et simplement remplacer "base" par "stats", mais je veux un moyen automatique. Est-ce que je peux le faire avec gsub() et body() d'une façon ou d'une autre?
je peux obtenir le corps du texte et remplacer là avec
as.character(body(myfun))
mais je ne sais pas comment transformer ce retour dans un « appel » et remplacer la définition.
(je sais qu'une meilleure solution est d'avoir enregistré les données utilisées à l'origine par approxfun et recréer simplement la fonction, mais je me demande s'il y a un moyen judicieux de modifier l'existant.)
Edit: J'ai trouvé ici
What ways are there to edit a function in R?
double possible de [? Quels sont les moyens pour modifier une fonction R] (http://stackoverflow.com/questions/2458013/what-ways-are-there-to-edit-a-function-in-r) –
J'ai essayé 'body (foo) <- gsub (" PACKAGE = 'base' "," PACKAGE = 'stats' " , body (foo)) 'pour vous, mais body() ne renvoie pas de texte, donc vous ne pouvez pas utiliser la manipulation de texte pour le changer. J'ai vérifié cela avec @MrFlick –
pourriez-vous alors écrire votre propre réponse afin que ce poste ne soit plus "sans réponse"? –