[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