[R-es] Cannot allocate a vector of size...

Xavier-Andoni Tibau Alberdi x@v|t|b@u @end|ng |rom gm@||@com
Lun Feb 10 16:15:29 CET 2020


La respuesta de Carlos creo que es mucho mas acertada que la mía. Cuando
trabajas con una matriz mayoritariamente con 0s, puedes representar-la en
forma de sparse matrix, y ocupa mucho menos espacio porque no guardas todos
los valores, sino aquellos distintos de 0 y su posición.

Estas construyendo la matriz sparse con esto:
 tdm<-TermDocumentMatrix(corpus,control=list(weighting =weightTf))

puedes ver aquí
<https://www.rdocumentation.org/packages/tm/versions/0.7-7/topics/TermDocumentMatrix>
la documentación.

Al hacer esto, conviertes la matrz sparse a matriz normal y pones en
memoria todos los 0s, que ahora ocupan espacio en la memoria volátil (RAM)
de tu ordenador.
tdm.reviews.m<-as.matrix(tdm)

Estamos hablando de memoria RAM, no del disco duro de tu ordenador.

Entiendo que tal y como sugiere Carlos, (1) lo mejor es que antes de pasar
de sparse matrix a matriz normal, consideres en reducir la cantidad de
columnas (o filas) de tu matriz. Imagino que es una matriz con frecuencias
de palabras, a lo mejor puedes eliminar aquellas columnas que representen
términos muy poco usados. O (2) sigas usando la sparse matrix para tu
analisis.

Espero que se entienda y te sirva de ayuda,

Saludos,

Xavier Tibau



Missatge de l'adreça <miriam.alzate using unavarra.es> del dia dl., 10 de febr.
2020 a les 16:05:

> Buenas,
> El archivo de R ocupa 33 megas. La matriz que quiero construir cupa 14 gb.
> En el disco local (C) tengo 400 gb disponibles de 670.
> No estoy muy puesta en trabajar con este tipo de datos. ¿Qué diferencia es
> trabajar con data.frame?
>
> Gracias!
>
> El Vie, 7 de Febrero de 2020, 18:07, Xavier-Andoni Tibau Alberdi escribió:
> > Depende de la operació que quieras hacer con la matriz. Si quitas filas y
> > columnas en algun momento, quiza lo puedes hacer por bloques y luego la
> > juntas.  O quizá puedes cargarlo directamente como data.frame? Quanta RAM
> > tienes? Cuanto pésan los datos?
> >
> >
> >
> >
> >
> > El vie., 7 feb. 2020 18:04, <miriam.alzate using unavarra.es> escribió:
> >
> >> Es la primera vez que trabajo con este tipo de datos...No se si se puede
> >> dividir esa matriz. ¿Cómo lo podría hacer?
> >>
> >> Muchas gracias!
> >> El Vie, 7 de Febrero de 2020, 17:55, Xavier-Andoni Tibau Alberdi
> >> escribió:
> >> > Significa que tus datos són muy grandes y no se pueden guardar en la
> >> RAM.
> >> > Tienes alternativas para dividir la matriz?
> >> >
> >> > El vie., 7 feb. 2020 17:26, <miriam.alzate using unavarra.es> escribió:
> >> >
> >> >> Buenas tardes,
> >> >>
> >> >> Estoy haciendo un análisis de contenido con el paquete tm. A la hora
> >> de
> >> >> ejecutar este código:
> >> >>  tdm<-TermDocumentMatrix(corpus,control=list(weighting =weightTf))
> >> >>  tdm.reviews.m<-as.matrix(tdm)
> >> >>
> >> >> La primera línea sí me la ejecuta bien pero en la segunda tengo este
> >> >> error:
> >> >> Error: cannot allocate vector of size 14.0 Gb
> >> >>
> >> >> ¿Cómo puedo corregirlo? Estoy usando la versión de 64bits de R.
> >> >>
> >> >> Un saludo
> >> >>
> >> >> Miriam
> >> >>
> >> >> _______________________________________________
> >> >> R-help-es mailing list
> >> >> R-help-es using r-project.org
> >> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> >> >>
> >> >
> >>
> >>
> >>
> >
>
>
>

	[[alternative HTML version deleted]]



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