Hola,

Yo la verdad no veo mayor problema en evitar las variables globales y
utilizar en su lugar variables intermedias que puedan ir cambiado.

Un elemento de ayuda a la hora de la legibilidad de tu código es si es
posible concentrar esas variables en una parte del programa de manera que
puedas localizarlas y comprobar sus valores más fácilmente.

Saludos,
Carlos Ortega
www.qualityexcellence.es



2010/7/8 J. Miguel Marin <jmmarin@est-econ.uc3m.es>

> Hola a tod@s,
>
> tengo una duda que se relaciona con alternativas al uso de variables
> globales.
>
> En principio, si se quiere usar un generador de v.a con la librería Runuran
> sólo se permite definir las funciones de densidad (o el núcleo de las
> mismas) con funciones con un único argumento en (x).
>
> Sin embargo, necesito pasar a las funciones más argumentos que van
> cambiando en las iteraciones de un ciclo largo, dado que estas v.a. dependen
> de otras en un muestreador de Gibbs (esto es sólo un detalle). El único modo
> que se me ocurre es mediante variables globales usando el operador "<<-"
> Sin embargo, esto tiene muy mala fama entre los gurús de la programación.
>
> Un ejemplo naif de lo que digo sería el siguiente:
>
> #................................................................
> # asignas cte como variable global
> cte <<- -0.5
>
> # Defines el nucleo de una densidad normal en funcion de x solo
> pdf <- function (x) { exp(cte*x^2) }
>
> # Generas una muestra de tamaño 100 de una distribucion normal con Runuran
> library(Runuran)
> gen <- tdr.new(pdf=pdf, lb=-Inf, ub=Inf)
> x <- ur(gen,100)
> plot(density(x))
> #................................................................
>
> ¿Sabeis de algún modo mejor de hacerlo, sin usar "<<-"?
>
> Y saludos
>
> jm~
>
> _______________________________
>
>       J. Miguel Marin
>
> http://www.est.uc3m.es/jmmarin
>
>   Dep. of Statistics
> University Carlos III of Madrid
>       Spain (E.U.)
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

	[[alternative HTML version deleted]]

