Hola a todos Necesito usar los valores producidos en otra funcion que posee un lop, pero al llamarla me sale solo el último valor. Por ejemplo, suponed una funcion sencilla> a1<-function(y){+ for(x in 1:10) + aa<-(2*y+x) + aa} ## Defino a a2<-a1(2) para que a1 evalue en x=2 y mirad lo que me sale:> a2<-a1(2) > a2[1] 14 ¿Por que no logro ver la serie de evaluaciones?. Agradezco cualquier suguerencia al respecto Saludos [[alternative HTML version deleted]]
Hola, Supongo que querrás que te salgan asi: a1(2) [1] 5 [1] 6 [1] 7 [1] 8 [1] 9 [1] 10 [1] 11 [1] 12 [1] 13 [1] 14 Para ello la función seria de esta manera: a1<-function(y){ for(x in 1:10) { aa<-(2*y+x) print(aa) } } Para que vaya mostrando cada valor por el bucle pones el "print" ademas de meterlo dentro del bucle y definirlo bien por corchetes "{". From: a_villa43@hotmail.com To: r-help-es@r-project.org Date: Thu, 13 Oct 2011 07:14:24 -0400 Subject: [R-es] Problemas escribiendo funciones Hola a todos Necesito usar los valores producidos en otra funcion que posee un lop, pero al llamarla me sale solo el último valor. Por ejemplo, suponed una funcion sencilla> a1<-function(y){+ for(x in 1:10) + aa<-(2*y+x) + aa} ## Defino a a2<-a1(2) para que a1 evalue en x=2 y mirad lo que me sale:> a2<-a1(2) > a2[1] 14 ¿Por que no logro ver la serie de evaluaciones?. Agradezco cualquier suguerencia al respecto Saludos [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
Buenos dias Adriana, Estas segura que quieres evaluar la funcion en x=2? No sera mas bien y=2? La funcion no entrega la serie completa porque no inicializas "aa" ni entregas su valor al finalizar el loop. La siguente modificacion hace lo que necesitas, pero no es la mas recomendada: a1 <-function(y){ aa <- NULL for(x in 1:10){ aa <- c(aa, 2*y + x) } aa } a1(2) Otra alternativa es a1.nuevo <- function(y) 2*y + 1:10 a1.nuevo(2) Un saludo, Jorge.- 2011/10/13 Adriana Villa <>> > Hola a todos > > Necesito usar los valores producidos en otra funcion que posee un lop, pero > al llamarla me sale solo el último valor. > > Por ejemplo, suponed una funcion sencilla > > > a1<-function(y){ > + for(x in 1:10) > + aa<-(2*y+x) > + aa} > > ## Defino a a2<-a1(2) para que a1 evalue en x=2 y mirad lo que me sale: > > a2<-a1(2) > > a2 > [1] 14 > > ¿Por que no logro ver la serie de evaluaciones?. Agradezco cualquier > suguerencia al respecto > > Saludos > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]