n = 100
podaci = rnorm(n)
# uzoracka medijana (ocena)
Tn = median(podaci)

B = 1000
T_b = rep(0, B)
for (i in 1:B) {
  # reuzorkujemo i racunamo vrednost ocene
  uz_b = sample(podaci, n, replace = T)
  T_b[i] = median(uz_b)
}
(se = sqrt(sum((T_b - mean(T_b))^2)/B))
# tj.
(se = sd(T_b)*sqrt((B-1)/B))

# drugi nacin
butstrep = function(x, ocena, B) {
  n = length(x)
  uz_b = sample(x, n*B, replace = T) 
  # smestamo uzorke obima n u B redova
  uz_b = matrix(uz_b, nrow = B, ncol = n)
  # racunamo vrednost ocene na uzorcima obima n (redovima)
  T_b = apply(uz_b, 1, ocena) 
  return(T_b)
}
sd(butstrep(podaci, median, 1000))*sqrt((B-1)/B)
