Я хочу сделать очень простую вещь в R - иметь алгоритм, который я могу легко параметризовать с помощью набора функций. Я был уверен, что смогу сделать что-то вроде утиных объектов. Вот идея показано на очень простой код: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 сделать что-то подобное? Задача проста, поэтому я предпочел бы, чтобы синтаксис был как можно более простым - никаких абстрактных классов или подобных.
Могу предложить вам ознакомиться с классами «S3». Их очень, очень легко создать, но это требует * некоторых усилий. В частности, вам нужно создать функцию по умолчанию. –