if else Inside функция для дальнейшего выполнения в R - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу создать функцию с некоторыми условиями. Если эти условия ИСТИНА, то они будут использованы для дальнейшего выполнения. Но моя проблема в том, что R не находит, что даже это ИСТИНА. Ниже приведен мой код R:

require(KernSmooth)
require(kerdiest)

mini<-function(y,k,h1=TRUE, h2=TRUE, h3=TRUE,type){
n <- length(y)
x <- seq(min(y) + 0.05, max(y), length = k)

if(h1==TRUE){
     h1 <- abs(dpik(y) ) 
}     else {     print("DPI is not selected")
}


if(h2==TRUE){
     h2<-abs(ALbw(vec_data=y)) 
}     else {     print("AL is not selected")
}

if(h3==TRUE){
    h3 <-abs(1.06*sd(y)*(n^(-1/5)))
}     else {    print("NSR is not selected")
}

ftrue<-switch(type,

    Exp = dexp(x,(1/mean(x))),

    Gamma = dgamma(x,(mean(x)/(var(x)/mean(x))),(var(x)/mean(x)))
)

dpi<-h1-sum(ftrue)
AL<-h2*3
nsr<-h3*4
v<-c("DPI"=dpi, "Altaman"=AL, "NSR"=nsr)
v[which.min(v)]
}#function end

y<-rexp(100,1)
mini(y,200,h1,h2,h3,"exp")

, но есть ошибка:

Error in mini(y, 200, h1, h2, h3, "exp") : object 'h1' not found

Я получаю какие-либо подсказки, в чем здесь моя ошибка. Пожалуйста, помогите мне в этой проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...