Я пытаюсь написать функцию для вычисления размеров выборки в R.
Функция использует несколько меньших функций. Я хотел бы передать аргументы в меньшие функции, используя точки. Вот моя функция до сих пор:
log_reg_var<-function(p){
if(p<=0|p>=1) stop('p must be between 0 and 1')
var<-1/(p*(1-p))
return(var)
}
samplesize<-function(method_name, beta, sigma_x, mult_cor, power= 0.8,fpr = 0.05,...){
if(method_name=='linear regression'){
var_func <- lin_reg_var
}
else if(method_name=='logistic regression'){
var_func <- log_reg_var
}
else if(method_name=='cox regression'){
var_func <- cox_reg_var
}
else if(method_name=='poisson regression'){
var_func <- pois_reg_var
}
else{
stop('method_name not recognized. method_name accepts one of: "linear regression",
"logistic regression","cox regression", or "poisson regression"')
}
top = (qnorm(1-fpr/2) + qnorm(power))^2
bottom = (beta*sigma_x)^2*(1-mult_cor)
n = (top/bottom)*var_func(...)
return(ceiling(n))
}
Я должен быть в состоянии сделать
samplesize(method_name = 'logreg',1,1,0,p=0.5)
>>>32
Но вместо этого мне выдается следующая ошибка:
Error in var_func(...) : argument "p" is missing, with no default
Очевидно, что что-то не так, когда я пропускаю p
через точки, но я не уверен, что не так.
В чем моя проблема?