[R-es] Problema con bucle for

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


En mi opinión en R siempre es preferible soluciones como la de Carlos, al ser una operación vectorial, todo es muchísimo más rápido, de este modo si tu vector fuese muy grande, mi solución sería lenta pero imagino que la de Carlos sería bastante rápida
Un saludo

Date: Tue, 24 Feb 2015 11:00:26 +0100
Subject: Re: [R-es] Problema con bucle for
From: cof en qualityexcellence.es
To: fjroar en hotmail.com
CC: morales en us.es; r-help-es en r-project.org

Hola,

Otra forma de hacerlo, es así:

#---------------
> x<- c(24,12,45,68,45)
> sum(apply(combn(x,2),2,prod))
[1] 14121
#---------------

Y te ahorras los líos del bucle y de los índices...

Saludos,
Carlos Ortega
www.qualityexcellence.es

El 24 de febrero de 2015, 10:36, Francisco Rodríguez <fjroar en hotmail.com> escribió:
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]]




_______________________________________________

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



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