Para que copien, peguen y disfruten

El otro día hablé de una señora que había hecho algunos comentarios poco avisados sobre R. A las alegaciones de que el código de R que publicó en su página no es, siquiera, código de R respondió diciendo que lo había copiado «de internet» (¡cuánto de pernicioso hay por esas páginas por donde uno navega sin temor de Dios!).

Para incrementar la probabilidad de que cuando esto vuelva a ocurrir el código pegado «de internet» sea más bonito que el arriba mencionado dejo acá éste (e invito a mis lectores a ejecutarlo):

v.x <- c(0,1,2)
v.y <- c(0,1,0)
vec <- sample( 1:3, 100000, replace = T )
iter <- function( ini, v ){
    out <- rep( ini, length(v) )
    for( i in 2:length(v) )
       out[i] <- ( out[i-1] + v[i] ) / 2
    out
}
plot( iter( runif(1), v.x[ vec ] ),
      iter( runif(1), v.y[ vec ] ), pch = "." )

Prometo que a nadie se le van a caer las tuercas del ordenador si lo corre en su ordenador. De lo que es, lo que significa, de dónde procede y lo poco para lo que sirve hablaré otro día en que no sea hora de estar en brazos de Morfeo.

2 comentarios sobre “Para que copien, peguen y disfruten

  1. jaume 21 abril, 2010 8:07

    Hola,
    ¡Que chulo! Enhorabuena por el blog, hace unos meses que te sigo.
    Gracias.

    Pregunta de novato:
    #creas un vector
    v.x <- c(0,1,2)
    #creas otro vector
    v.y <- c(0,1,0)
    #creas un vector gigante combinando 1, 2, 3 anteriores
    vec <- sample( 1:3, 100000, replace = T )

    #creas una función
    iter <- function( ini, v ){
    out <- rep( ini, length(v) )
    #para que repita ini tantas veces como elementos de v
    #ahora sigues con un bucle, pero v no existe ¿no?
    for( i in 2:length(v) )
    out[i] <- ( out[i-1] + v[i] ) / 2
    out
    }
    #aquí ya vuelve a estar claro
    plot( iter( runif(1), v.x[ vec ] ),
    iter( runif(1), v.y[ vec ] ), pch = "." )

    Seguro que hay algo trivial que no he visto ¿Me lo explicas?
    Es lo que tiene tener un blog.

    Saludos y gracias.

Los comentarios están desabilitados.