[R-br] Soma com intervalo definido dentro de um loop

Jaildo Rocha j.vieirarocha em gmail.com
Segunda Março 7 10:56:38 BRT 2016


Yuri Duarte,

Apesar de outras soluções possíveis, acredito que a mais simples seja através da função “rollsum” do pacote “zoo”, como neste exemplo:

require(zoo)

##
# Vetor qualquer
VA        <- rnorm(n = 200,mean = 100,sd = 1)
# Soma móvel de quarenta valores  
MovingSum <- rollsum(VA,40)
##

Caso seja de sua preferência realizar a soma com o loop mesmo:

##
# Soma loop
# quantidade de valores a serem somados
janela <- 40

# Criação do vetor de resultados
Msum <- c()
  
for(i in 1:(length(VA)-janela+1)){
  # vetor com os valores de interesse
  A <- VA[i:(i+39)]
  Msum[i] <- sum(A)
}
##

Espero que ter entendido a sua dúvida e  ajudado!

Att,

-------
Jaildo Rocha 
Mestrando pelo Programa Pós Graduação em Saneamento Meio Ambiente e Recursos  Hídricos –  UFMG


> Em 07/03/2016, à(s) 08:41, Yury Duarte <yurynepomuceno em gmail.com> escreveu:
> 
> Bom dia colegas de R!
> 
> Preciso somar uma serie de dados com tamanho definido igual a "a" repetições.
> Tentei usar o comando for() para realizar essa tarefa e somar os valores de x1 até xa; x2 até x(a+1) e assim sucessivamente até xn.
> 
> Usando a estrutura básica da função soma fora do comando for não tive problemas:
> sum(Nasa$PP.Liquida[1:140])
> 
> Quando tentei aplicar esse formato no comando for não consegui ter sucesso:
> PP = for(i in Nasa$PP.Liquida){
>   sum(Nasa$PP.Liquida[i:(i+139)])
> } 
> 
> Acredito que possa ser um problema de entendimento conceitual do funcionamento desse comando.
> Alguém poderia me ajudar nessa questão?
> 
> Desde já, agradeço a todos pelo apoio!
> 
> Att
> 
> Yury Duarte
> Engenheiro Agrônomo - ESALQ/USP
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160307/c24b8942/attachment.html>


Mais detalhes sobre a lista de discussão R-br