显然,如果我尝试这样做:
# 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。
答案 0 :(得分:2)
错误不是来自对300万个值进行采样,而是来自试图创建大约900亿个值1111111111:99999999999
的总体来进行采样。如果要从该范围进行采样,请从1:88888888889范围进行采样,并使用
sample(88888888889, 3000000,replace=TRUE) + 11111111110
最后不需要as.vector
,它已经是向量。
P.S。我相信在R-devel中,可以更有效地存储1111111111:99999999999范围(基本上只是限制),但是我不知道是否可以修改sample()
来使用它。