-1

显然,如果我尝试这个:

# first grab the package
install.packages("stringi")
library(stringi)

# and then try to generate some serious dummy data
my_try <- as.vector(sample(1111111111:99999999999,3000000,replace=T))

R 会说 NOPE,对不起:

Error: cannot allocate vector of size 736.8 Gb

我应该购买更多 RAM* 吗?

*这是一个笑话,但我非常感谢任何帮助!

编辑:所需的输出是 20 个变量和 3x10^6 行的数据框。一些列/变量应该是字符串,一些整数。长度范围从 2 到 12。

4

1 回答 1

2

错误不是来自对 300 万个值的采样,而是来自试图创建一个包含大约 900 亿个值的1111111111:99999999999总体进行采样。如果要从该范围内采样,请从 1:88888888889 范围内采样并使用添加 11111111110

sample(88888888889, 3000000,replace=TRUE) + 11111111110

最后不需要了as.vector,它已经是一个向量了。

PS 我相信在 R-devel 中,范围 1111111111:99999999999 将被更有效地存储(基本上只是限制),但我不知道是否sample()会被修改为以这种方式使用它。

于 2018-10-28T19:44:14.167 回答