быстрая выборка в R - PullRequest
       5

быстрая выборка в R

9 голосов
/ 28 марта 2011

Есть ли более быстрый способ отбора случайной подвыборки (без замены), чем функция base::sample?

Ответы [ 3 ]

14 голосов
/ 28 марта 2011

Вы можете немного ускорить процесс, исключив вызов функции 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 

В зависимости от вашей проблемы могут быть другие, более умные способы ускорения вашего кода.Подумайте о том, как заменить множество маленьких звонков на один большой.

3 голосов
/ 28 марта 2011
нет

нет

Я могу получить 10000 образцов за 3 мс на моем ноутбуке с заменой. Без замены я могу получить их за 5 мс. Рисование нескольких раз из 500 распределений занимает 66 мс. Как быстро вам это нужно было?

0 голосов
/ 28 марта 2011

Если не использовать CUDA / gputools, вы не найдете более быстрого пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...