ds=round(runif(20,10,100))
f.acum=function(x){
  res=0
  for (i in 1:length(x)){
    res=cumsum(x)
  }
  res
}

f.rel.acum=function(x){
  res=0
  for (i in 1:length(x)){
    res=cumsum(x)
  }
  res
}
#breaks puede ser definido por usuario
c.1=as.data.frame(table(cut(ds,breaks=5)))
c.3=c.1$Freq/length(ds)
t.freq=data.frame(c.1$Var1,c.1$Freq,c.3,c.4=f.acum(c.1$Freq),c.5=f.rel.acum(c.3))
names(t.freq)=c("Intervalos","Frecuencia","Frecuencia Relativa","Frecuencia Acumulada","Frecuencia Relativa Acumulada")
t.freq
##    Intervalos Frecuencia Frecuencia Relativa Frecuencia Acumulada
## 1 (10.9,28.2]          3                0.15                    3
## 2 (28.2,45.4]          0                0.00                    3
## 3 (45.4,62.6]          8                0.40                   11
## 4 (62.6,79.8]          5                0.25                   16
## 5 (79.8,97.1]          4                0.20                   20
##   Frecuencia Relativa Acumulada
## 1                          0.15
## 2                          0.15
## 3                          0.55
## 4                          0.80
## 5                          1.00
# Construccion del histograma
# ds puede ser cualquier conjunto de datos
histograma=hist(ds,breaks="FD",xlab = "Intervalos de clase",ylab = "Frecuencia",main="Histograma de datos",col="skyblue",freq = FALSE,
                ylim=c(0,1))
curve(dunif(x,10,100),type = "l",col="red",add=TRUE)
lines(t.freq$`Frecuencia Relativa Acumulada`,type = "l",col="blue")