O solo
R> sum(combn(x, 2, prod))
[1] 14121
Saludos,
Jorge.-
2015-02-24 21:00 GMT+11:00 Carlos Ortega <cof en qualityexcellence.es>:
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 [1]
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]]