我想在 R 中做一件非常简单的事情——有一个算法,我可以很容易地用一组函数参数化。我很确定我可以做一些像鸭子类型的对象。这是非常简单的代码中显示的想法:
par1.generate <- function(n) {
runif(n, min=0, max=1000)
}
par1.mean <- function(vec) {
mean(vec)
}
par2.generate <- function(n) {
round(runif(n, min=0, max=1000))
}
par2.mean <- function(vec) {
mean(vec, trim=0.2)
}
#the "algorithm"
alg <- function(par) {
v <- par.generate(10)
par.mean(v)
}
alg(par1)
alg(par2)
如果我尝试运行此代码,我会得到类似
alg(par1) 中的错误:找不到函数“par.mean”
所以我想我的直觉方法行不通。
做这样的事情的R方式是什么?任务很简单,所以我希望语法尽可能简单——没有抽象类或类似的。