7
我有一些.rdata文件,其中包含由approxfun()定義的已保存函數。修改現有函數對象的正文文本
一些保存文件前從最新包「基地」 approxfun爲「統計」的變化,所以身體有
PACKAGE = "base"
和錯誤的包會導致功能失效。我可以修復(myfun),只需將「base」替換爲「stats」,但我想要一個整潔的自動方式。
我可以用gsub()和body()以某種方式做到這一點嗎?
我能得到身體的文本和替代那裏
as.character(body(myfun))
,但我不知道如何把這一回「呼叫」並替換定義。
(我知道一個更好的解決方案是保存最初由approxfun,只需重新創建函數的數據,但我不知道是否有修改現有的一個明智的方式。)
編輯:我發現在這裏
What ways are there to edit a function in R?
可能重複http://stackoverflow.com/questions/2458013/what-ways-are-to-edit-a-function-in-r) – 2014-05-11 19:09:27
我試過'body(foo)< - gsub(「PACKAGE ='base'」,「PACKAGE ='stats'」 ,body(foo))',但body()不會返回文本,因此您不能使用文本操作來更改它。我通過@MrFlick – 2014-08-05 15:44:51
驗證了這一點,然後你可以自己寫答案,以便這篇文章不再是「未答覆」的? – 2014-09-05 07:57:20