Я пытаюсь написать функцию с аргументами по умолчанию в R. Последний аргумент говорит мне, как пользователь хотел бы, чтобы вычислялась переменная 'g'.По умолчанию это «s + a» (сумма двух предыдущих аргументов), но в принципе это может быть указано любой функцией (например, «s - a» или «s * a» ...).
myFunc <- function(n,
s = rbernoulli(n, p = 0.5),
a = rnorm(n,sd = 2),2),
g = s + a){
data.frame(s = factor(s),
a = a,
g = as.numeric(g>0))
}
Это прекрасно работает, если я вызываю саму функцию:
myFunc(5)
Чтобы указать, как я хочу вычислить 'g', я хотел бы сделать это:
myFunc(n = 5, g = a - s) (I)
или
myFunc(n = 5, a = ., s = ., g = a - s) (II)
Кажется (I) заставит R искать переменные s / a в рабочей области, а это не то, что мне нужно.И (II) не существует, но я бы сказал: «используйте для него вычисления по умолчанию».
Я попытался указать свою функцию с NULL, но это тоже не сработало.Обратите внимание, что я хотел бы иметь возможность использовать «g» внутри функции после того, как у меня есть ее значение (например, я не могу заменить ее функцией).