Рассмотрим следующие функции: -
abc<-function(n,alpha, sigma2=NULL){
if(!is.null(sigma2)){
return(qnorm(1-alpha, mean=0, sd=1, lower.tail=TRUE, log.p=FALSE))
}
else
{
return(qt(1-alpha, n-1, lower.tail=TRUE, log.p=FALSE))
}
}
abc1<-function(n, k, alpha, sigma2=NULL){
c1<-abc(n, alpha, sigma2)
Q<-matrix(10, nrow=k, ncol=1)
i=0
for(j in 1:k)
{
if(Q[j,1]>c1)
i=i+1
}
return(i/k)
}
Мой интерес в основном к второй функции, которая имеет условный аргумент. Функция работает нормально с sigma2
, являющимся NULL
, или ей задается: -
> abc1(10,10, 0.01, 1)
[1] 1
> abc1(10,10, 0.01)
[1] 1
Однако всякий раз, когда я пытаюсь использовать sapply
с sigma2
, являющимся NULL
и другими аргументами при фиксированном значении я получаю ошибку, подобную этой: -
n1<-1:100
> sapply(n1, abc1, k=10,alpha=0.01)
Error in if (Q[j, 1] > c1) i = i + 1 :
missing value where TRUE/FALSE needed
In addition: Warning message:
In qt(1 - alpha, n - 1, lower.tail = TRUE, log.p = FALSE) : NaNs produced
Я не знаю, где я делаю ошибку. Может кто-нибудь сказать мне, как я могу исправить эту проблему?