Me temo que no tengo demasiada experiencia en trabajar con sparse matrix en
R. Definitivamente cuando haces 'as.matrix(x)' estas convirtiendo x en una
matriz normal, no sparse. He visto que existe el paquete slam para trabajar
con ellas (documentación
<https://www.rdocumentation.org/packages/slam/versions/0.1-47>). DeberÃas
ver si las opciones del paquete te permiten hacer lo que quieres.
FaltarÃa más información de que haces luego con la matriz, para poder saber
si es posible dividir-la. Te pongo un ejemplo, si quieres calcular el valor
promedio de las columnas, puedes dividir la matriz en dos, calcularlos por
separado y luego juntar los resultados. Pero si tu matriz sirve para hacer
una regresión lineal, no puedes, puesto que necesitas la inversa de la
matriz y no se puede calcular a partir de dos mitades.
A ver si con el paquete slam puedes continuar, sino deberÃas compartir que
haces luego con la matriz para que podamos intentar aconsejarte.
Saludos,
Xavier Tibau
Missatge de l'adreça <miriam.alzate en unavarra.es> del dia dl., 10 de febr.
2020 a les 16:56:
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
La respuesta de Carlos creo que es mucho mas acertada que la mÃa.
trabajas con una matriz mayoritariamente con 0s, puedes representar-la
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Ã
<
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
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
de sparse matrix a matriz normal, consideres en reducir la cantidad de
columnas (o filas) de tu matriz. Imagino que es una matriz con
de palabras, a lo mejor puedes eliminar aquellas columnas que
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
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é
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
columnas en algun momento, quiza lo puedes hacer por bloques y luego
juntas. O quizá puedes cargarlo directamente como data.frame?
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
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
Tienes alternativas para dividir la matriz?
El vie., 7 feb. 2020 17:26, <miriam.alzate en unavarra.es>
Buenas tardes,
Estoy haciendo un análisis de contenido con el paquete tm. A la
ejecutar este código:
tdm<-TermDocumentMatrix(corpus,control=list(weighting
tdm.reviews.m<-as.matrix(tdm)
La primera lÃnea sà me la ejecuta bien pero en la segunda tengo
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