Bonjour à tous,

J'ai écrit la fonction suivante, qui est un histogramme régulier à D intervalles sur [0,1]. Disons X<-runif(100) et D<-10. La fonction est bien écrite et ne me pose pas de problème. Par contre, je ne parviens pas à l'intégrer. Quand j'écris integrate(f,-5,5);, il me répond "evaluation of function gave a result of wrong length".

Quelqu'un pourrait m'aider à intégrer ce type de fonction?
Merci d'avance !


f<-function(x){
#on compte d'abord le nombre de points qui tombent dans l'intervalle I_j pour j=1..D

#but:créer un vecteur qui donne le nbre de points X_i dans chaque intervalle de longueur 1/D
n<-length(X)
Y<-sort(X)
N<-numeric(D+1)
N[1]<-0
s<-0
k<-1
for(j in 1:D-1){
while((j-1)/D <= Y[k] && Y[k]<j/D){k<-k+1}
N[j+1]<-k-1-s
s<-s+N[j+1]
}
N[D+1]=length(Y)-s
N<-N[-1]

if(x<0 || x>1) return(0)

for(j in 1:D){
if((j-1)/D<=x && x <j/D) return(N[j]*D/n)
}

}