不确定这是否可行,但值得一提。我需要能够修改加载到全局环境中的函数。例如,假设我有一个像下面这样的函数返回了向量的中值
myVec<-c(1,2,3,4,5,5,5,6,7,8,9,10)
average<-function(x){
median(x)
}
average(myVec)
现在我想更新函数以返回平均值,但不更改函数的整体结构,因此我想更新average()
使其成为
average<-function(x){
mean(x)
}
这可能吗?我猜测某种形式的函数写入临时文件并调用readLines()
和writeLines()
但是我还没有成功。
答案 0 :(得分:1)
我相信你的意思是关闭:
myVec<-c(1,2,3,4,5,5,5,6,7,8,9,10)
# this will create your function
create.average <- function (fun) {
my.average <- function (x) {
fun(x)
}
return(my.average)
}
# define average as mean
average <- create.average(mean)
average(myVec)
mean(myVec) # only to verify result
# re-define average as median
average <- create.average(median)
average(myVec)
median(myVec) # only to verify result