[R-es] Problema con bucle for

morales en us.es morales en us.es
Mar Feb 24 11:00:06 CET 2015


 

Muchas gracias por la solución. 

El 24/02/2015 10:36, Francisco Rodríguez 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=0 
> for(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