Disculpen por mi ignoracia, puede ser que pregunte algo medio estúpido,
pero.

Si la cantidad de datos requiere mucha ram.

¿Que posibilidad hay?

1) De crear dos vectores (listas, data.frame), solo con las columnas
necesarias (matriz.grande[rango1, rango2]<-matriz.normal)
Eliminar todo el resto de la memoria.
Y procesar.

2) ¿De puede usar sparse matrix?

Javier

El 30 de septiembre de 2011 04:23, Ramon Diaz-Uriarte
<rdiaz02@gmail.com>escribió:

>
>
>
> On Wed, 28 Sep 2011 21:56:09 +0200,Servicio de Estadísticas Demográficas y
> Sociales <seds.ive@gmail.com> wrote:
> > [1  <text/plain; ISO-8859-1 (quoted-printable)>]
> > La función consiste en un proceso iterativo en el que las modificaciones
> a
> > la matriz grande son del tipo
> > matriz.grande[rango1, rango2]<-matriz.normal
>
> > Ese tipo de sentencias creo que puedo modificarlas (sin "estropear" la
> > función) si encuentro el modo de que R no intente ubicar de nuevo
> espacio,
> > quizás con ff.
>
>
> Usar ff requerirá ciertos cambios en el código,, y tendrás que tener
> cuidado con guardar los resultados (ff escribe a disco, pero no es
> directamente un objeto .RData). Es más trabajo si quieres mover resultados
> entre máquinas.
>
>
>
> > Lo que veo más problemático es que matriz.grande siga siendo una matriz y
> no
> > un objeto de clase ff para poder incluirlo con comodidad en operaciones
> > usuales de matrices.
>
> Con ff no tienes a tu disposición todas las operaciones que hay en R con
> matrices.
>
>
> > *****
>
> > Lo que comentas de las copias intermedias es justamente el problema que
> > tengo. Aunque en la función ponga, por ejemplo,
>
> > matriz.grande[rango1, rango2]<<-nuevos.valores
>
> > en realidad R genera una copia completa de matriz.grande.
>
>
> Exacto.
>
>
>
>
> Quizás una solución expeditiva sea moverse a una máquina con mucha más RAM
> ;-).
>
>
> R.
>
>
> > Saludos.
> > Seds
>
> > El 28 de septiembre de 2011 19:40, Ramon Diaz-Uriarte
> > <rdiaz02@gmail.com>escribió:
>
> > >
> > >
> > >
> > > On Wed, 28 Sep 2011 15:40:43 +0200,Servicio de Estadísticas
> Demográficas y
> > > Sociales <seds.ive@gmail.com> wrote:
> > > > [1  <text/plain; ISO-8859-1 (quoted-printable)>]
> > > > Lo primero, muchas gracias por tus sugerencias. Voy a investigar el
> > > paquete
> > > > ff a ver si así lo resuelvo.
> > >
> > > Pero he visto que luego comentas que los accesos a la matriz están
> > > escritos por otra persona. Usar ff requeriría que re-escribieras parte
> del
> > > código.
> > >
> > >
> > > > Sobre la segunda alternativa que apuntas, ¿puede modificarse parte de
> una
> > > > matriz mediante assign o alguna función similar?
> > >
> > > Sí, claro, puedes hacer assign de lo que sea, en el environment que
> elijas
> > > (entiendo que te refieres al uso de variables globales). Pero el
> problema
> > > de creación de copias intermedias existe. Y en la asignación a
> matrices, y
> > > operaciones como
> > >
> > > x[, i] <- lo.que.sea
> > >
> > >
> > >
> > >
> > > puede haber muchas más copias intermedias de las que uno esperaría,
> > > incluyendo copias intermedias de la totalidad de x. El último libro de
> > > Chambers, creo, explica esto con cierto detalle.
> > >
> > >
> > > Vaya, toquetear cachos de matrices (y vectores) suele ser caro, sobre
> todo
> > > si se hace varias veces.
> > >
> > >
> > >
> > >
> > > R.
> > >
> > >
> > >
> > > > Saludos.
> > > > Seds
> > >
> > > > El 28 de septiembre de 2011 14:17, Ramon Diaz-Uriarte
> > > > <rdiaz02@gmail.com>escribió:
> > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On Wed, 28 Sep 2011 13:53:19 +0200,Servicio de Estadísticas
> > > Demográficas y
> > > > > Sociales <seds.ive@gmail.com> wrote:
> > > > > > [1  <text/plain (quoted-printable)>]
> > > > > > ¿Hay alguna manera de pasar a parámetros por referencia?
> > > > >
> > > > > > El problema es que tengo una matriz muy grande (unos 6 Gb) que al
> > > pasarla
> > > > > > como parámetro a una función (que, además debe modificarla) R
> > > > > internamente
> > > > > > trata de copiarla y se genera un error de "imposible ubicar un
> vector
> > > de
> > > > > 6
> > > > > > Gb)
> > > > >
> > > > >
> > > > > Hay varios paquetes en CRAN que implementan diversas formas de
> acceso
> > > por
> > > > > referencia. Pero, en tu caso, quizás el paquete "ff" (que deja las
> > > cosas
> > > > > en disco, y accede sólo ---pero de forma muy rápida--- a lo
> necesario)
> > > te
> > > > > sea más útil.
> > > > >
> > > > > > Aunque sé que no es buena práctica, también me valdría si
> pudieran
> > > > > definirse
> > > > > > variables "globales".
> > > > >
> > > > >
> > > > > Puedes imitar parcialmente el comportamiento de variables globales
> > > usando
> > > > > las reglas del scope, si no redefines la variable en el conjunto de
> > > > > environments anidados, y si no la pasas como parámetro de tu
> función. Y
> > > > > pudes cambiar esas variables globales con assign, y similares.
> > > > >
> > > > >
> > > > > Pero generalmente suele dar lugar a código difícil de mantener y
> > > debuggear.
> > > > >
> > > > > Un saludo,
> > > > >
> > > > >
> > > > > R.
> > > > >
> > > > >
> > > > > > Un saludo.
> > > > > > Seds
> > > > >
> > > > > >       [[alternative HTML version deleted]]
> > > > >
> > > > > > [2  <text/plain; iso-8859-1 (quoted-printable)>]
> > > > > > _______________________________________________
> > > > > > R-help-es mailing list
> > > > > > R-help-es@r-project.org
> > > > > > https://stat.ethz.ch/mailman/listinfo/r-help-es
> > > > > --
> > > > > Ramon Diaz-Uriarte
> > > > > Department of Biochemistry
> > > > > Universidad Autónoma de Madrid
> > > > > Spain
> > > > >
> > > > > http://ligarto.org/rdiaz
> > > > >
> > > > > Temporarily at:
> > > > > Structural Biology and Biocomputing Programme
> > > > > Spanish National Cancer Centre (CNIO)
> > > > >
> > > > > Phone: +34-91-732-8000 ext. 3019
> > > > > Fax: +-34-91-224-6972
> > > > >
> > > > [2  <text/html; ISO-8859-1 (quoted-printable)>]
> > >
> > > --
> > > Ramon Diaz-Uriarte
> > > Department of Biochemistry
> > > Universidad Autónoma de Madrid
> > > Spain
> > >
> > > http://ligarto.org/rdiaz
> > >
> > > Temporarily at:
> > > Structural Biology and Biocomputing Programme
> > > Spanish National Cancer Centre (CNIO)
> > >
> > > Phone: +34-91-732-8000 ext. 3019
> > > Fax: +-34-91-224-6972
> > >
> > [2  <text/html; ISO-8859-1 (quoted-printable)>]
>
> --
> Ramon Diaz-Uriarte
> Department of Biochemistry
> Universidad Autónoma de Madrid
> Spain
>
> http://ligarto.org/rdiaz
>
> Temporarily at:
> Structural Biology and Biocomputing Programme
> Spanish National Cancer Centre (CNIO)
>
> Phone: +34-91-732-8000 ext. 3019
> Fax: +-34-91-224-6972
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

	[[alternative HTML version deleted]]

