miri@m@@iz@te m@iii@g oii u@@v@rr@@es
2020-Feb-10 15:05 UTC
[R-es] Cannot allocate a vector of size...
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 en 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 en 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 en r-project.org >> >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >> > >> >> >> >
Xavier-Andoni Tibau Alberdi
2020-Feb-10 15:15 UTC
[R-es] Cannot allocate a vector of size...
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 en 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 en 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 en 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 en r-project.org > >> >> https://stat.ethz.ch/mailman/listinfo/r-help-es > >> >> > >> > > >> > >> > >> > > > > >[[alternative HTML version deleted]]
miri@m@@iz@te m@iii@g oii u@@v@rr@@es
2020-Feb-10 15:56 UTC
[R-es] Cannot allocate a vector of size...
Muchas gracias Xabier. He intentaddo trabajar con la sparse matrix pero al pasar tdm a matriz me dice también que "cannot allocate a vector of size 12 gb". He hecho tdm<-as.matrix(tdm) ¿Está bien hecho eso para trabajar con la sparse matrix? Gracias! El Lun, 10 de Febrero de 2020, 16:15, Xavier-Andoni Tibau Alberdi escribió:> 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 en 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 en 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 en 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 en r-project.org >> >> >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >> >> >> > >> >> >> >> >> >> >> > >> >> >> >