[R-es] ¿Pasar parámetros por referencia?

Ramon Diaz-Uriarte rdiaz02 en gmail.com
Mie Sep 28 14:17:03 CEST 2011





On Wed, 28 Sep 2011 13:53:19 +0200,Servicio de Estadísticas Demográficas y Sociales <seds.ive en 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 en 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



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