[R-es] Aplicar una función repetidamente

rubenfcasal rubenfcasal en gmail.com
Jue Mayo 12 10:40:41 CEST 2016


Yo de primeras lo haría así:

f <- function(x) return(x^2)

recursiva <- function(x, fun, k) {
   if (k > 1) return(fun(recursiva(x, fun, k-1))) else return(fun(x))
}

 > recursiva(2,f,1)
[1] 4
 > recursiva(2,f,2)
[1] 16
 > recursiva(2,f,3)
[1] 256
 > f(f(f(2)))
[1] 256

Un saludo,
     Rubén FC


El 12/05/2016 a las 10:29, Carlos Ortega escribió:
> Hola Jorge,
>
> Creo que la función que buscas está del lado de las varias implementaciones
> que tiene "R" del lado de la "Programación Funcional".
> En particular miraría la función "Reduce()".
> Y también la función "accumulate()" del paquete de Hadley Wickham "purr"
> (Functional Programming Tools).
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> El 12 de mayo de 2016, 5:39, Jorge I Velez <jorgeivanvelez en gmail.com>
> escribió:
>
>> Hola a todos,
>>
>> Quisiera aplicar una función f(x) un total de k veces de manera recursiva.
>> En pseudo código sería algo como
>>
>> Si k = 1, calcular f(x);
>> Si k = 2, calcular f(f(x));
>> Si k = 3, calcular f(f(f(x))).
>>
>> Al final me gustaria tener una función g cuyos argumentos sean x y el valor
>> de k. Así,
>>
>> g(x, k = 2)
>>
>> daría como resultado f(f(x)).
>>
>> Cualquier ayuda y/o sugerencia será más que bienvenida.
>>
>> Muchísimas gracias,
>> Jorge Velez.-
>>
>>          [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>



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