Предположим, я хочу написать функцию в R
, которая является функцией нескольких достаточных статистических данных для некоторых данных.Например, предположим, что функция, назовите ее foo.func
, зависит только от среднего значения выборки данных.Для удобства я думаю, что пользователи могут захотеть передать foo.func
выборку случайных величин (в этом случае foo.func
вычисляет среднее значение выборки), или выборку означают сами, что все это foo.func
потребности.Из соображений эффективности последнее предпочтительнее, если вызывается несколько функций, таких как foo.func
, которые могут принимать среднее значение выборки.В этом случае среднее значение нужно вычислять только один раз (в реальной задаче, которую я имею в виду, рассматриваемая выборочная статистика может потребовать значительных вычислительных ресурсов).новичок (передать данные, позволить функции вычислить достаточную статистику), а также эксперт (предварительно вычислить достаточную статистику для эффективности и передать ее).Каковы рекомендуемые методы для этого?У меня есть логический флаг?Несколько аргументов?Некоторые способы сделать это могут быть:
#optional arguments
foo.func <- function(xdata, suff.stats=NULL) {
if (is.null(suff.stats)) {
suff.stats <- compute.suff.stats(x)
}
#now operate on suff.stats
}
или
#flag input
foo.func <- function(data.or.stat, gave.data=TRUE) {
if (gave.data) {
data.or.stat <- compute.suff.stats(data.or.stat)
}
#now operate on data.or.stat
}
Я склоняюсь к первому, я думаю