Solución:
Para aquellos que usan Rstudio, encontré esa configuración Sys.setenv('R_MAX_VSIZE'=32000000000)
solo funciona en la línea de comando, y esa configuración de ese parámetro mientras se usa Rstudio no evita este error:
Error: vector memory exhausted (limit reached?)
Después de leer un poco más, encontré este hilo, que aclara el problema con Rstudio e identifica una solución, que se muestra a continuación:
Paso 1: terminal abierto,
Paso 2:
cd ~
touch .Renviron
open .Renviron
Paso 3: guarde lo siguiente como la primera línea de .Renviron
:
R_MAX_VSIZE=100Gb
Nota: Este límite incluye tanto la memoria física como la virtual; por lo que configurar _MAX_VSIZE = 16 Gb en una máquina con 16 Gb de memoria física puede no evitar este error. Puede que tenga que jugar con este parámetro, dependiendo de las especificaciones de su máquina
R 3.5 tiene un nuevo límite de sistema para la asignación de memoria. De las notas de la versión:
La variable de entorno R_MAX_VSIZE ahora se puede usar para especificar el tamaño máximo del montón del vector. En macOS, a menos que lo especifique esta variable de entorno, el tamaño máximo del montón de vectores se establece en el máximo de 16 GB y la memoria física disponible. Esto es para evitar que el proceso R se elimine cuando macOS compromete la memoria en exceso.
Puede anular esto. Te arriesgas a sobreasignar y matar el proceso, pero eso es probablemente lo que estaba sucediendo si golpeabas una pared dura con R 3.4.4 o lo que sea que estuvieras usando antes.
Ejecute lo siguiente en Terminal para crear una variable de entorno temporal R_MAX_VSIZE
con valor 32GB (cambiar para adaptarse):
export R_MAX_VSIZE=32000000000
O si no desea abrir Terminal y ejecutarlo cada vez que desee iniciar una sesión de R, puede agregar la misma línea a su perfil de bash. Abre Terminal y encuentra tu perfil de bash open .bash_profile
y, en un editor de texto, agregue la línea de arriba.
Aún tendrá que abrir Terminal e iniciar R desde allí. Puede ejecutar R en la terminal simplemente ejecutando R
o puede abrir la GUI open -n /Applications/R.app
.
Para realizar este cambio en una sesión de R, use Sys.setenv('R_MAX_VSIZE'=32000000000)
y comprobar el valor de uso Sys.getenv('R_MAX_VSIZE')
Aquí puede encontrar una solución para aquellos que no estén familiarizados con la línea de comandos:
En resumen, la solución es utilizar el usethis
paquete.
usethis::edit_r_environ()
abrirá el .Renviron que se encuentra en su directorio de inicio. Este .Renviron afecta a todo el trabajo de Rstudio
usethis::edit_r_environ("project")
abrirá un .Renviron local a su proyecto. Los cambios realizados en este archivo solo afectan el trabajo realizado en ese proyecto de Rstudio en particular.
Una vez abierto, el R_MAX_VSIZE
var se puede configurar.
La página enlazada también enlaza con este blog que describe el proceso de inicio de R con gran detalle.