除非你真的很需要他們,這是最簡單的不存儲你生成的數字的任意時間比你需要的,因爲將他們的250640000,需要大約內存GB。相反,您可以立即致電table
。使用replicate
代替for
環(你不使用i
反正)將會把結果放到一個很好的矩陣對你太:
Record <- replicate(5000, table(sample(x = 0:9, size = 50128, replace = T)))
Record[, 1:10]
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## 0 4999 4971 4919 5116 5101 5016 4861 5109 5063 4991
## 1 5060 4959 4935 5047 5142 4927 5005 4920 5098 5023
## 2 4916 4954 5019 4966 4994 4954 5049 5013 5031 5081
## 3 4907 5007 5075 5042 4993 5015 5078 5037 4936 5073
## 4 5117 4935 5003 5000 4970 5084 5008 4948 5115 5010
## 5 4966 5146 5054 4944 5048 4935 5016 5104 5042 5010
## 6 5055 4899 4964 5006 4977 5076 4943 5048 5064 4817
## 7 5082 5040 5070 5034 4976 5056 5049 5012 4985 4983
## 8 5094 5108 5014 4949 5052 5037 5073 5000 4894 5082
## 9 4932 5109 5075 5024 4875 5028 5046 4937 4900 5058
如果你真的需要存儲的號碼,以及,你可以使用類似的方法:
# Make a matrix of terms. Warning: big.
Terms <- replicate(5000, sample(x = 0:9, size = 50128, replace = T))
# Apply table to each column (set of samples)
Record <- apply(Terms, 2, table)
另外,如果要存儲的樣本,而不是使用replicate
你可以只直接採樣到矩陣:
Terms <- matrix(sample(x = 0:9, size = 50128 * 5000, replace = T), nrow = 50128)
Record <- apply(Terms, 2, table)
Record
(和Terms
,如果存儲的話)看起來是相同的,儘管所需的時間可能會有所不同。