R as.numeric内存使用情况

时间:2017-08-09 16:09:08

标签: r memory

我在R中做了一些计算,需要先预测内存使用情况。

一个数字占用8个字节:

a <- data.frame(a=rnorm(10000000))
gc()
           used (Mb) gc trigger  (Mb) max used (Mb)
Ncells   218314 11.7     460000  24.6   350000 18.7
Vcells 10402305 79.4   15379586 117.4 10408785 79.5

10,000,000 * 8字节确实等于80Mb

但是,如果我将此数据帧转换为数字,则内存使用率会高得多,转换为数字过程中的最大内存使用量也非常高。

a <- sapply(a, as.numeric)
gc()
           used  (Mb) gc trigger  (Mb) max used  (Mb)
Ncells   218918  11.7    9601876 512.8 10219029 545.8
Vcells 14532255 110.9   61311656 467.8 73533764 561.1
  1. 为什么转换为数字后数据框的大小(内存)会更高?当rnorm(。)的输出已经是数字时,我们可以用class(rnorm(1))来检查它。

  2. 如何预测转换过程中将使用多少内存(a,as.numeric)?

0 个答案:

没有答案