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.-
[R-es] Aplicar una función repetidamente
4 messages · Jorge I Velez, Carlos Ortega, rubenfcasal +1 more
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
Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
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
g <- function(f, x, k){
for(i in 1:k)
x <- f(x)
x
}
g(sqrt, 256, 3)
Un saludo,
Carlos J. Gil Bellosta
http://www.datanalytics.com
El 12 de mayo de 2016, 10:40, rubenfcasal <rubenfcasal en gmail.com> escribió:
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
_______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es