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]]