Вы можете немного ускорить процесс, исключив вызов функции base :: sample:
> x<- rnorm(10000)
> system.time(for(i in 1:100000) x[.Internal(sample(10000L, 10L, FALSE, NULL))])
user system elapsed
2.873 0.017 2.851
> system.time(for(i in 1:100000) sample(x,10))
user system elapsed
3.420 0.025 3.258
В зависимости от вашей проблемы могут быть другие, более умные способы ускорения вашего кода.Подумайте о том, как заменить множество маленьких звонков на один большой.