varias superponer studio modificar lineas graficos graficas ejes r

studio - superponer graficas en r



Longitud máxima para un vector en R (2)

De acuerdo con la documentación R ''Memory-limits'', no es posible asignar un vector de longitud superior a 2 ^ 31-1. Esto se debe a que el número entero utilizado como índice solo puede usar 31 bits (un bit para el signo). Pero en un sistema de 64 bits, debería ser capaz de asignar vectores más largos. ¿Por qué R impone esta misma longitud máxima en sistemas de 64 bits? ¿Hay alguna manera de eludir el límite?


Aquí hay algunos detalles más que complementarán la respuesta de Ben. Las limitaciones parecen heredarse de los lenguajes de programación de nivel inferior utilizados para construir R, especialmente (aparentemente) el código FORTRAN. Entonces, obviamente, la transición de R para que pueda aprovechar al máximo los sistemas de direccionamiento de 64 bits va a ser un proyecto importante.

Del manual de R-admin :

Incluso en construcciones de 64 bits de R, existen límites en el tamaño de los objetos R (consulte la ayuda ("Límites de memoria"), algunos de los cuales se derivan del uso de enteros de 32 bits (especialmente en el código FORTRAN). de R, la longitud máxima (número de elementos) de un vector es 2 ^ 31-1, aproximadamente 2 mil millones, y en compilaciones de 64 bits, el tamaño de un bloque de memoria asignado está limitado a 2 ^ 34-1 bytes (8 GB ). Se prevé que se levantarán con el tiempo *, pero la necesidad de objetos de 8 GB es (cuando esto fue escrito en 2011) excepcional.

(También hay una nota al pie irónica en el manual, donde puse un * , señalando que "este comentario ha estado en el manual desde 2005". :)


Si está dispuesto a trabajar con la versión de desarrollo de R, puede tener soporte experimental para esta función. De http://stat.ethz.ch/R-manual/R-devel/doc/html/NEWS.html :

LARGOS VECTORES

Hay inicios de soporte para vectores de más de 2 ^ 31 - 1 elementos en plataformas de 64 bits. Esto se aplica a vectores crudos, lógicos, enteros, dobles, complejos y de caracteres, así como a listas. (Los elementos de los vectores de caracteres permanecen limitados a 2 ^ 31 - 1 bytes).

Todos los aspectos son actualmente experimentales.

Lo que se puede hacer con dichos vectores actualmente es algo limitado, y la mayoría de las operaciones devolverán el error ''vectores largos aún no admitidos''. Se pueden serializar y deserializar, se pueden calcular coacciones, trabajos idénticos () y object.size (). Sus longitudes se pueden obtener y establecer por xlength (): la longitud de llamada () en un vector largo generará un error.

La mayoría de los aspectos de indexación están disponibles. Generalmente, los índices de doble valor se pueden usar para acceder a elementos más allá de 2 ^ 31 - 1.

Vea el vínculo para mas detalles. No he experimentado con esto en absoluto, así que no puedo comentar si todavía es útil o no.

Si vas a http://developer.r-project.org/R_svnlog_2011 (y http://developer.r-project.org/R_svnlog_2012 ) y buscas "vectores largos", puedes tener una idea del trabajo que es pasando.