[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