Ошибка не в выборке из 3 миллионов значений, а в попытке создать популяцию из примерно 90 миллиардов значений 1111111111:99999999999
для выборки.Если вы хотите произвести выборку из этого диапазона, выполните выборку из диапазона 1: 88888888889 и добавьте 11111111110, используя
sample(88888888889, 3000000,replace=TRUE) + 11111111110
. Нет необходимости в as.vector
в конце, это уже вектор.
PS Я верю, что в R-devel диапазон 1111111111: 99999999999 будет храниться гораздо более эффективно (в основном только пределы), но я не знаю, будет ли sample()
изменен для работы с ним таким образом.