It seems something wrong with your resampling, the bootdata you get in each iteration is exactly the same. Because this line has fixed the value of logapple08 and logrm08 which doesn't change when you do the resampling. #log returns of AAPL and market logapple08<- na.omit(ROC(apple08)*100) logrm08<-na.omit(ROC(rm08)*100) Add one more line between these two lines df08<-cbind(logapple08,logrm08) set.seed(666) as df08<-cbind(logapple08,logrm08) colnames(df08) <- c("logapple08", "logrm08") set.seed(666) It will give different values. Another thing is because in bootstrap, we calculate $\hat{\beta}_1$ in each boot and collect them together as a sample of estimator $\hat{\beta}_1$, then calculate the bootstrap standard deviation of estimator $\hat{\beta}_1$. If you're interested in the bootstrap sd of estimator $\hat{\beta}_1$, you might like to Change this line sd.boot[i]= coef(summary(lm(logapple08~logrm08, data = bootdata)))[2,2] to sd.boot[i]= coef(summary(lm(logapple08~logrm08, data = bootdata)))[2,1]