[R-es] Problema con bucle for

Francisco Rodríguez fjroar en hotmail.com
Mar Feb 24 10:36:11 CET 2015


Si he entendido bien el problema, lo que quieres hacer realmente es esto:
x<- c(24,12,45,68,45)n<-length(x)res=0for(i in 2:n-1){  for(j in (i+1):n){    res<- res + (x[i]*x[j])    print(res)  }}
Cuya salida es:
[1] 288[1] 1368[1] 3000[1] 4080[1] 4620[1] 5436[1] 5976[1] 9036[1] 11061[1] 14121
Varias observaciones:
1:n-1 define un vector que empieza en 0, cuando la posición 1 en R es el 1 por tanto x[0] no existe y no da resultado
sum(x[i]*x[j])  es una operación que calcula la suma de un vector, en tu caso tienes un escalar y por tanto no debería hacer nada
Tienes que definir res para que se sume así misma
Un saludo 
Francisco J.


> Date: Tue, 24 Feb 2015 10:02:11 +0100
> From: morales en us.es
> To: r-help-es en r-project.org
> Subject: [R-es] Problema con bucle for
> 
>  
> 
> Hola, quiero obtener la suma del producto de los elementos de un vector
> y cuando construyo el código me aparecen una serie de NA que me impiden
> calcular la suma. ¿Alguna sugerencia? 
> 
> El código es el siguiente: 
> 
> x<- c(24,12,45,68,45)
> n<-length(x)
> res<-numeric()
> for(i in 1:n-1){
>  for(j in i+1:n){
>  res<- sum(x[i]*x[j])
>  print(res)
>  }
> }
> res 
> 
>  
> 	[[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
 		 	   		  
	[[alternative HTML version deleted]]



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