[R-es] ¿Alguna explicación para este fenómeno? (Relativo al uso de memoria)

Marcelino de la Cruz marcelino.delacruz en upm.es
Jue Jun 13 20:23:13 CEST 2013


Y el tamaño también depende de la estructura que tenga la data.frame 
(numero de filas y columnas):

 > object.size(data.frame(matrix(1,nc=10,nr=10)))
2984 bytes

 > object.size(data.frame(matrix(1,nc=2,nr=50)))
1576 bytes

 > object.size(data.frame(matrix(1,nc=50,nr=2)))
6568 bytes


(cosa que no pasa con las matrices):

 > object.size((matrix(1,nc=10,nr=10)))
1000 bytes
 > object.size((matrix(1,nc=50,nr=2)))
1000 bytes
 > object.size((matrix(1,nc=2,nr=50)))
1000 bytes
 >



Así que al partir una data.frame irás "acumulando" bytes extra, y cuanto 
más pequeños sean los "trozos", mayor será el tamaño:

 > object.size(data.frame(matrix(1,nc=5,nr=5)))*4
5376 bytes
 > object.size(data.frame(matrix(1,nc=2,nr=2)))*25
20200 bytes


Saludos,

Marcelino



El 13/06/2013 20:04, Carlos Ortega escribió:
> Hola,
>
> Si este comportamiento se ve con cualquier data.frame que luego conviertas
> a lista:
>
>>
>>
>> v <- 1:10
>> w <- split(v, 1:2)
>> w
> $`1`
> [1] 1 3 5 7 9
>
> $`2`
> [1]  2  4  6  8 10
>
>> object.size(v)
> 88 bytes
>> object.size(w)
> 464 bytes
>> object.size(w[[1]])
> 72 bytes
>
> Y he encontrado una explicación que entiendo parcialmente está aquí:
>
>
> http://stackoverflow.com/questions/15848590/confusing-size-of-objects-in-r/15850414#15850414
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> El 13 de junio de 2013 18:35, Carlos J. Gil Bellosta
> <gilbellosta en gmail.com>escribió:
>
>> Hola, ¿qué tal?
>>
>> Tengo un df relativamente chiquito:
>>
>>> dim(loans)
>> [1] 15172    22
>>> object.size(loans)
>> 7488144 bytes
>>
>> Sin embargo,
>>
>> empresas <- split(loans, loans$number_id)
>> length(empresas)
>> #8748
>>
>> object.size(empresas)
>> # 50643907728 bytes
>>
>> Es decir, el objeto resultante de partir un df de 15000 filas en 8700
>> dfs ocupa 5GB.
>>
>> ¿Alguna idea de por qué ocurre esto?
>>
>> (Uso R 3.0.1 en un Xubuntu 12.04 de 64 bits).
>>
>> Un saludo,
>>
>> Carlos J. Gil Bellosta
>> http://www.datanalytics.com
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
>
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



Más información sobre la lista de distribución R-help-es